Method and system for multi-user detection using two-stage processing

ABSTRACT

Systems and methods for multi-user detection in a multiple access system are provided. In one aspect, an apparatus is provided. The apparatus comprises a processing unit configured to process received chips into received symbols for a plurality of users and a computation unit configured to compute a multi-user matrix using a Hadamard matrix, wherein the multi-user matrix relates user symbols for the plurality of users to the received symbols. The apparatus further comprises a detection unit configured to detect the user symbols for the plurality of users using the received symbols and the computed multi-user matrix.

FIELD

The present application relates generally to wireless communicationsystems, and particularly to methods and systems for multi-userdetection in a multiple access system.

BACKGROUND

In wireless communication systems, many users communicate over awireless channel. For example, code division multiple access (CDMA)modulation technique is one of several techniques for facilitatingcommunications in which a large number of system users are present.Other multiple access communication system techniques, such as timedivision multiple access (TDMA) and frequency division multiple access(FDMA) may be used as well.

Because of the presence of multiple data transmissions for multipleusers in a wireless communication system, it is desirable to mitigatemulti-user interference (MUI) and inter-symbol interference, forexample, along with other noise. Traditionally, interferencecancellation is performed at the chip level in a receiver, where thecomplexity directly rises with the number of users as well as the numberof iterations involved. Chip-level interference cancellation is complexand may involve high-level algorithms and implementation tweaks. Thiscomplexity causes the receiver to be susceptible to error propagation.Therefore, systems and methods that provide accurate multi-userinterference and inter-symbol interference cancellation while overcomingdisadvantages of chip-level interference cancellation are desirable.

SUMMARY

In one aspect of the disclosure, a multi-user detection method isprovided. The method comprises processing received chips into receivedsymbols for a plurality of users and computing a multi-user matrix usinga Hadamard matrix, wherein the multi-user matrix relates user symbolsfor the plurality of users to the received symbols. The method furthercomprises detecting the user symbols for the plurality of users usingthe received symbols and the computed multi-user matrix.

In another aspect of the disclosure, an apparatus is provided. Theapparatus comprises a processing unit configured to process receivedchips into received symbols for a plurality of users and a computationunit configured to compute a multi-user matrix using a Hadamard matrix,wherein the multi-user matrix relates user symbols for the plurality ofusers to the received symbols. The apparatus further comprises adetection unit configured to detect the user symbols for the pluralityof users using the received symbols and the computed multi-user matrix.

In yet a further aspect of the disclosure, an apparatus is provided. Theapparatus comprises means for processing received chips into receivedsymbols for a plurality of users and means for computing a multi-usermatrix using a Hadamard matrix, wherein the multi-user matrix relatesuser symbols for the plurality of users to the received symbols. Theapparatus further comprises means for detecting the user symbols for theplurality of users using the received symbols and the computedmulti-user matrix.

In yet a further aspect of the disclosure, a machine-readable mediumhaving instructions stored thereon in provided. The instructions areexecutable by one or more processors and comprise code for processingreceived chips into received symbols for a plurality of users andcomputing a multi-user matrix using a Hadamard matrix, wherein themulti-user matrix relates user symbols for the plurality of users to thereceived symbols. The instructions further comprise code for detectingthe user symbols for the plurality of users using the received symbolsand the computed multi-user matrix.

In yet a further aspect of the disclosure, an apparatus is provided. Theapparatus comprises at least one processor configured to processreceived chips into received symbols for a plurality of users, tocompute a multi-user matrix using a Hadamard matrix, wherein themulti-user matrix relates user symbols for the plurality of users to thereceived symbols, and to detect the user symbols for the plurality ofusers using the received symbols and the computed multi-user matrix.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a wireless communication system with multipleusers, according to certain aspects of the present disclosure.

FIG. 2 is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 3 is a diagram of a single user channel model, according to certainaspects of the present disclosure.

FIG. 4( a) is a diagram of a multi-user channel model, according tocertain aspects of the present disclosure.

FIG. 4( b) is a diagram of a simplified multi-user channel model,according to certain aspects of the present disclosure.

FIG. 4( c) is a diagram of a simplified multi-user channel modelincluding noise, according to certain aspects of the present disclosure.

FIG. 5 is a schematic of a multi-user detection system using two-stageprocessing in a wireless communication system, according to certainaspects of the present disclosure.

FIG. 6 is a schematic of a multi-user detection system using two-stageprocessing and a multi-user interference matrix, according to certainaspects of the present disclosure.

FIG. 7 is a flow diagram illustrating a method of multi-user detectionusing two-stage processing, according to certain aspects of the presentdisclosure.

FIG. 8 is a flow diagram illustrating a method of transmitting chips toa receiver, according to certain aspects of the present disclosure.

FIG. 9 is a flow diagram illustrating a method of processing chips intoone or more received symbols for a plurality of users, according tocertain aspects of the present disclosure.

FIG. 10 is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 11 is a diagram of a multi-channel model, according to certainaspects of the present disclosure.

FIG. 12 a is a flow diagram illustrating a method of multi-userdetection, according to certain aspects of the present disclosure.

FIG. 12 b is a flow diagram illustrating a method of computing amulti-user interference matrix, according to certain aspects of thepresent disclosure.

FIG. 12 c is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 13 is a schematic of a system for computing multi-user interferenceand shoulder matrices, according to certain aspects of the presentdisclosure.

FIG. 14 is a schematic of a multi-user detection system withinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 15 is a schematic of a multi-user detection system withinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 16 a is a flow diagram illustrating a method of multi-userdetection with interference cancellation, according to certain aspectsof the present disclosure.

FIG. 16 b is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 17 is a schematic of a multi-user detection system with iterativeinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 18 is a flow diagram illustrating a method of multi-user detectionwith iterative interference cancellation, according to certain aspectsof the present disclosure.

FIG. 19 is a schematic of a multi-user detection system with iterativeinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 20 is a schematic of a detection system with inter-cellinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 21 is a schematic of a cell computation unit, according to certainaspects of the present disclosure.

FIG. 22 a is a flow diagram illustrating a method of computing receivechips for a cell, according to certain aspects of the presentdisclosure.

FIG. 22 b is a flow diagram illustrating a method of inter-cellinterference cancellation, according to certain aspects of the presentdisclosure.

FIG. 22 c is a flow diagram illustrating a method of inter-cellcancellation and multi-user detection, according to certain aspects ofthe present disclosure.

FIG. 22 d is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 23 is a schematic of a channel estimation system, according tocertain aspects of the present disclosure.

FIG. 24 a is a flow diagram illustrating a method of channel estimation,according to certain aspects of the present disclosure.

FIG. 24 b is a flow diagram illustrating a method of total filterestimation, according to certain aspects of the present disclosure.

FIG. 24 c is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 25 a is a diagram of an exemplary 16 QAM constellation, accordingto certain aspects of the present disclosure.

FIG. 25 b is a diagram of an exemplary QPSK constellation, according tocertain aspects of the present disclosure.

FIG. 26 is a diagram of an exemplary 16 QAM constellation decomposedinto sub-constellations, according to certain aspects of the presentdisclosure.

FIG. 27 is a schematic of a multi-user QAM sub-constellation detectionsystem, according to certain aspects of the present disclosure.

FIG. 28 a is a flow diagram illustrating a method of multi-usersub-constellation detection, according to certain aspects of the presentdisclosure.

FIG. 28 b is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 29 is a schematic of a multi-user QAM detection system withiterative interference cancellation, according to certain aspects of thepresent disclosure.

FIG. 30 is a diagram of an orthogonal variable spreading factor (OVSF)tree, according to certain aspects of the present disclosure.

FIG. 31 is a diagram representing a spreading code in terms of a fathercode, according to certain aspects of the present disclosure.

FIG. 32 is a diagram of spreading codes at different spreading factors,according to certain aspects of the present disclosure.

FIG. 33 is a flow diagram illustrating user symbol detection, accordingto certain aspects of the present disclosure.

FIG. 34 is a schematic of a multi-user detection system capable ofdetecting symbols and performing interference cancellation for multiplespreading factors, according to certain aspects of the presentdisclosure.

FIG. 35 a is a flow diagram illustrating a method of multi-userdetection in the presence of multiple spreading factors, according tocertain aspects of the present disclosure.

FIG. 35 b is a block diagram of a mobile station used in a wirelesscommunication system, according to certain aspects of the presentdisclosure.

FIG. 36 is a flow diagram illustrating a method of multi-user detectionin the presence of multiple spreading factors, according to certainaspects of the present disclosure.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth to provide a full understanding of the subject technology. It willbe obvious, however, to one ordinarily skilled in the art that thesubject technology may be practiced without some of these specificdetails. In other instances, well-known structures and techniques havenot been shown in detail so as not to obscure the subject technology.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs.

Reference will now be made in detail to aspects of the subjecttechnology, examples of which are illustrated in the accompanyingdrawings, wherein like reference numerals refer to like elementsthroughout.

It should be understood that the specific order or hierarchy of steps inthe processes disclosed herein is an example of exemplary approaches.Based upon design preferences, it is understood that the specific orderor hierarchy of steps in the processes may be rearranged while remainingwithin the scope of the present disclosure. The accompanying methodclaims present elements of the various steps in a sample order, and arenot meant to be limited to the specific order or hierarchy presented.

FIG. 1 is a diagram of a wireless communication system supportingmultiple users, according to certain aspects of the present disclosure.Communication system 100 provides communication for a number of cells102A-102G (referred to as cells 102), each of which is serviced by acorresponding base station 104A-104G (referred to as base stations 104).Of course, any number of cells 102 and base stations 104 may be includedin the communication system 100. In the exemplary communication system100, some of the base stations 104 have multiple receive antennas andothers have only one receive antenna. Similarly, some of the basestations 104 have multiple transmit antennas and others have a singletransmit antenna.

Mobile stations 106A-106H (referred to as mobile stations 106) may referto, for example, cellular phones, PDAs or the like, and may also becalled mobile devices, user equipment (UE), wireless communicationdevices, terminals, stations, mobile equipment (ME) or some otherterminology. As shown in FIG. 1, various mobile stations 106 may bedispersed throughout the communication system 100, and each mobilestation 106 communicates with at least one base station 104 on adownlink and uplink at any given moment.

Different technologies may be used for various multiple accesscommunication systems such as (1) a CDMA system that transmits data fordifferent users using different orthogonal code sequences, (2) an FDMAsystem that transmits data for different users on different frequencysubbands, (3) a TDMA system that transmits data for different users indifferent time slots, (4) a spatial division multiple access (SDMA)system that transmits data for different users on different spatialchannels, (5) an orthogonal frequency division multiples access (OFDMA)system that transmits data for different users on different frequencysubbands, and so on.

FIG. 2 is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 may include a receiver 200 that isconfigured to receive a transmitted signal using antenna 220. Thereceiver 200 is communicatively coupled to a front-end processing unit210, which may be used for filtering of the received signal using, forexample, a channel-matched filter and/or an equalizer. The mobilestation 106 may include a descramble and despread unit 230, whichdescrambles and despreads the output of the front-end processing unit210. Mobile station 106 may further include a processing unit 240, acommunicatively coupled memory 250 and a communicatively coupleddetection unit 260, which is used for multi-user detection and describedin further detail below. The mobile station 106 is not limited to anyparticular configuration, and various combinations of components, aswell as other components, may be included in the mobile station 106.

FIG. 3 is a diagram of a single user channel model, according to certainaspects of the present disclosure. As shown in FIG. 3, a user symbolb(m) is transmitted from a transmitter (not shown), which may be withina base station 104, for example. The user symbol may also be referred toas a data symbol for the user and may be obtained by mapping one or moredata bits to a data symbol using Binary Phase Shift Keying (BPSK)modulation, Quadrature Phase Shift Keying (QPSK) modulation, QuadratureAmplitude Modulation (QAM), or other scheme. It is noted that m refersto the symbol period of user symbol b(m). It follows that a previoususer symbol would be labeled as b(m−1) and a subsequent user symbolwould be labeled as b(m+1). The user symbol b(m) is spread, using aWalsh code w(n), for example, and scrambled using code p(n). The Walshcode may have a spreading factor of N, in which the Walsh code w(n)comprises a sequence of N chips spanning one symbol period. The resultof the spreading and scrambling is transmitted over channel h at block310.

Mobile station 106 receives chips at receiver 200 using antenna 220,which are then filtered at front-end processing unit 210, anddescrambled using descrambling code p*(n) and despread using despreadingcode w*(n) at the descramble and despread unit 230, before being summedat summation block 320. The resulting received symbol at the mobilestation 106 is labeled as z(m). The summation block 320 sums thedespreaded signal over one symbol period to obtain each received symbolz(m).

Total filter 300 “{c}” refers to a total filter, which is a convolutionof the channel 310 h and the filter 210 f. The channel 310 h may beestimated using pilot-based channel estimation and/or data-aided channelestimation, which are discussed in further detail below. For an exampleof a channel-matched filter, the filter f may be based on a time-inverseconjugate h*(−n) of a channel estimate h. When the length of the totalfilter 300 is less than 2N+1 (where N is the spreading factor), thereceived symbols z(m) for symbol period m may be expressed by Eq. (1)below:z(m)=a ⁻¹(m)b(m−1)+a ₀(m)b(m)+a ₁(m)b(m+1)  (1)

In terms of c(l), w(n) and p(n), matrices a⁻¹(m), a₀(m) and a₁(m) may beexpressed as shown in Eqs. (2)-(4).

$\begin{matrix}{{a_{0}(m)} = {{\sum\limits_{d = 0}^{N - 1}{{c(d)}{\sum\limits_{n = {{({m - 1})}N}}^{{mN} - 1 - d}{{w^{*}\lbrack {n + d} \rbrack}{p^{*}\lbrack {n + d} \rbrack}{w\lbrack n\rbrack}{p\lbrack n\rbrack}}}}} + {\sum\limits_{d = 1}^{N - 1}{{c( {d - N} )}{\sum\limits_{n = {{mN} - d}}^{{mN} - 1}{{w^{*}\lbrack {n + d - N} \rbrack}{p^{*}\lbrack {n + d - N} \rbrack}{w\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}}} & (2) \\{{a_{1}(m)} = {\sum\limits_{d = 0}^{N - 1}{{c( {d - N} )}{\sum\limits_{n = {mN}}^{{{({m + 1})}N} - 1 - d}{{w^{*}\lbrack {n + d - N} \rbrack}{p^{*}\lbrack {n + d - N} \rbrack}{w\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}} & (3) \\{{a_{- 1}(m)} = {\sum\limits_{d = 1}^{N}{{c(d)}{\sum\limits_{n = {{{({m - 1})}N} - d}}^{{{({m - 1})}N} - 1}{{w^{*}\lbrack {n + d} \rbrack}{p^{*}\lbrack {n + d} \rbrack}{w\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}} & (4)\end{matrix}$

FIG. 4( a) is a diagram of a multi-user channel model, according tocertain aspects of the present disclosure. Instead of transmitting auser symbol b(m), as described in FIG. 3, FIG. 4( a) shows thetransmission of a user symbol set {b_(k)(m)}. That is, symbols b₁(m) tob_(Nu)(m) may be transmitted to multiple users 1 to Nu. The symbolsb₁(m) to b_(Nu)(m) may be represented in vector form as b(m). Itfollows, therefore, that respective spreading codes (e.g., Walsh codes)w₁(n) to w_(Nu)(n) may be applied to each user symbol b₁(m) tob_(Nu)(m). Of course, the use of Walsh codes is merely exemplary, andother spreading techniques may be used without departing from the scopeof the present disclosure. Furthermore, respective gains g₁ to g_(Nu)may be applied to respective user symbols b₁(m) to b_(Nu)(m). It isnoted that distinct or similar spreading codes or gains may be appliedto respective user symbols b₁(m) to b_(Nu)(m) without departing from thescope of the present disclosure. The spread signals for the differentusers may be combined at combiner 400 before scrambling code p(n) isapplied. The resulting combined signal is transmitted via channel 310 h.

Mobile station 106 receives chips at receiver 200, using antenna 220,which are then filtered at front-end processing unit 210. Variousfront-end filtering techniques may be implemented (e.g., front-endchannel-matched filter and/or equalization). The filtered chips are thendescrambled using descrambling code p*(n) and despread using despreadingcodes w*₁(n) to w*_(Nu)(n) at the descramble and despread unit 230. Thedescrambling code p*(n) and despreading codes w*₁(n) to w*_(Nu)(n) maybe conjugates of the scrambling p(n) and spreading codes w₁(n) tow_(Nu)(n), respectively. Each despreaded signal is summed over onesymbol period by the respective summation block 320 to obtain a receivedsymbol z₁(m) to z_(Nu)(m). The resulting received symbols z₁(m) toz_(Nu)(m) represent the symbols received at a mobile station 106.

The resulting received symbols z₁(m) to z_(Nu)(m) may be expressed as avector z(m), shown in Eq. (5) below:

$\quad\begin{matrix}\begin{matrix}{{\underset{\_}{z}(m)} = {{{A_{- 1}(m)}G{\underset{\_}{b}( {m - 1} )}} + {{A_{0}(m)}G{\underset{\_}{b}(m)}} + {{A_{1}(m)}G{\underset{\_}{b}( {m + 1} )}}}} \\{= {{\overset{\sim}{A}(m)}\overset{\sim}{G}{\overset{\sim}{\underset{\_}{b}}(m)}}}\end{matrix} & (5)\end{matrix}$where G is a gain matrix 415 (see FIG. 4( c)) and {tilde over (G)} is astacked gain matrix 420 (see FIG. 4( b), which can be expressed as shownin Eq. (6):

$\begin{matrix}{{G = \begin{bmatrix}g_{1} & \; & 0 \\\; & \ddots & \; \\0 & \; & g_{Nu}\end{bmatrix}}{\overset{\sim}{G} = \begin{bmatrix}G & \; & \; \\\; & G & \; \\\; & \; & G\end{bmatrix}}} & (6)\end{matrix}$b(m) is a vector of user symbols b₁(m) to b_(Nu)(m) and can be expressedas shown in Eq. (7):

$\begin{matrix}{{{\underset{\_}{b}(m)} = \begin{bmatrix}{b_{1}(m)} \\\vdots \\{b_{Nu}(m)}\end{bmatrix}},{{\underset{\_}{\overset{\sim}{b}}(m)} = \begin{bmatrix}{\underset{\_}{b}( {m - 1} )} \\{\underset{\_}{b}(m)} \\{\underset{\_}{b}( {m + 1} )}\end{bmatrix}}} & (7)\end{matrix}$Ã(m) may be referred to as a multi-user interference matrix 410, and isexpressed as shown in Eq. (8):Ã(m)=[A ⁻¹(m)A ₀(m)A ₁(m)]  (8)According to certain embodiments, A⁻¹(m), A₀(m) and A₁(m) are Nu by Numulti-user interference (MAI) and shoulder matrices, where Nu is thenumber of code channels in a serving cell 102. The determination ofmatrices A⁻¹(m), A₀(m) and A₁(m) will be discussed in greater detailbelow with reference to FIG. 5.

The resulting expression in Eq. (5) may be rewritten as in Eq. (9)below:

$\begin{matrix}{{\underset{\_}{z}(m)} = {\sum\limits_{l = {- 1}}^{1}{{A_{l}(m)}G{\underset{\_}{b}( {m + l} )}}}} & (9)\end{matrix}$

As a result of the foregoing equations, a simplified model of thetransmission of user symbols b₁(m) to b_(Nu)(m) and the received symbolsz₁(m) to z_(Nu)(m) may be expressed as shown in FIG. 4( b). In FIG. 4(b), the stacked gain matrix {tilde over (G)} is labeled as 420 andmulti-user interference matrix Ã(m) is labeled as 410 (as delineated bythe dotted line in FIG. 4( a)).

FIG. 4( c) is a diagram of a simplified multi-user channel modelincluding noise, according to certain aspects of the present disclosure.As shown in FIG. 4( c), user symbols b(m) are gain scaled at block 415,and are spread and scrambled at block 425. The resulting signal istransmitted via channel 310 h, and may be subjected to noise duringtransmission. The signal received at the receiver is filtered atfront-end processing unit 210 and descrambled and despread at descrambleand despread unit 230. The resulting received symbols z(m) can beexpressed by Eq. (10), where the noise is represented by v(m).z (m)=Ã(m){tilde over (G)}{tilde over (b)} (m)+ v (m)  (10)

It follows, therefore, that the resulting received symbols z(m) (e.g., adespread CDMA signal) may be shown by a single expression, whichrepresents multi-user inter-symbol interference (ISI), multi-userinterference (MUI) as well as other unaccounted for noise v(m). Thesingle expression represents a symbol-level, time-varying, multi-usermodel of the despread signal, as shown in Eq. (11).z (m)=A ⁻¹(m)Gb (m−1)+A ₀(m)Gb (m)+A ₊₁(m)Gb (m+1)+ v (m)  (11)As an alternative, Eq. (11) may be written as Eq. (12):

$\begin{matrix}{{\underset{\_}{z}(m)} = {{\sum\limits_{l = {- 1}}^{1}{{A_{l}(m)}G{\underset{\_}{b}( {m + l} )}}} + {\underset{\_}{v}(m)}}} & (12)\end{matrix}$

FIG. 5 is a schematic of a multi-user detection system using two-stageprocessing at a receiver in a wireless communication system, accordingto certain aspects of the present disclosure. Stage 1 500 refers to thechip level, when the chips r(n) are received at receiver 200 (shown inFIG. 2). The received chips r(n) are subjected to front-end processingat filter 210 (e.g., channel matched filter and/or equalizer). Theoutput of the filter 210, y(n), is input to the descramble and despreadunit 230, where the output y(n) is descrambled using descrambling codep*(n) and despread using despreading codes w*₁(n) to w*_(Nu)(n), forexample, which are previously stored in memory 250. The descramble anddespread unit 230 outputs the received symbols z₁(m) to z_(Nu)(m).

In one aspect, the descramble and despread unit 230 comprises adescrambling mixer 315 to mix the filtered chips y(n) with thedescrambling code p*(n) and despreading mixers 317 to mix thedescrambled chips with the despreading codes w*₁(n) to w*_(Nu)(n). Thedescramble and despread unit 230 also comprises summation blocks 320 forsumming the despread signals over one symbol period to obtain thereceived symbols z₁(m) to z_(Nu)(m).

It is to be understood that the filtering, descrambling and despreadingoperations of the multi-user detection system may be arranged in adifferent order than shown in the example in FIG. 5 to obtain thereceived symbols z₁(m) to z_(Nu)(m). For example, the descrambling anddespreading operations may be performed before filtering. Therefore, themulti-user detection system is not limited to a particular order offiltering, descrambling and despreading operations.

As noted above, total filter 300 c refers to the convolution of channel310 h and filter 210 f. Thus, c(l) is equal to h(l) convolved with f(l),where h(l) and f(l) may be computed and stored in the memory 250. Interms of c(l), w(n) and p(n), matrices A⁻¹(m), A₀(m) and A₁(m) may beexpressed as shown in Eqs. (13)-(15).

$\begin{matrix}{\lbrack {A_{0}(m)} \rbrack_{ij} = {{\sum\limits_{d = 0}^{N - 1}{{c(d)}{\sum\limits_{n = {{({m - 1})}N}}^{{mN} - 1 - d}{{w_{i}^{*}\lbrack {n + d} \rbrack}{p^{*}\lbrack {n + d} \rbrack}{w_{j}\lbrack n\rbrack}{p\lbrack n\rbrack}}}}} + {\sum\limits_{d = 1}^{N - 1}{{c( {d - N} )}{\sum\limits_{n = {{mN} - d}}^{{mN} - 1}{{w_{i}^{*}\lbrack {n + d - N} \rbrack}{p^{*}\lbrack {n + d - N} \rbrack}{w_{j}\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}}} & (13) \\{\lbrack {A_{1}(m)} \rbrack_{ij} = {\sum\limits_{d = 0}^{N - 1}{{c( {d - N} )}{\sum\limits_{n = {mN}}^{{{({m + 1})}N} - 1 - d}{{w_{i}^{*}\lbrack {n + d - N} \rbrack}{p^{*}\lbrack {n + d - N} \rbrack}{w_{j}\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}} & (14) \\{\lbrack {A_{- 1}(m)} \rbrack_{ij} = {\sum\limits_{d = 1}^{N}{{c(d)}{\sum\limits_{n = {{{({m - 1})}N} - d}}^{{{({m - 1})}N} - 1}{{w_{i}^{*}\lbrack {n + d} \rbrack}{p^{*}\lbrack {n + d} \rbrack}{w_{j}\lbrack n\rbrack}{p\lbrack n\rbrack}}}}}} & (15)\end{matrix}$

Stage 2 510 refers to the symbol level, where the output of thedescramble and despread unit 230 is obtained (i.e., resulting receivedsymbols z₁(m) to z_(Nu)(m)). Eq. (11) above provides a symbol-level,time-varying, multi-user model that relates the received symbols z₁(m)to z_(Nu)(m) to the desired user symbols b₁(m) to b_(Nu)(m). Using Eq.(11) and the computed matrices A⁻¹(m), A₀(m) and A₁(m), the gain matrix,and the received symbols, one can solve for the desired user symbolsb₁(m) to b_(Nu)(m).

According to certain embodiments, the shoulder matrices A₁ and A₁ may besmall, so that they may be absorbed with noise v(m), resulting in totalinterference {acute over (η)}ń(m). As a result, z(m) may be expressed asshown in Eq. (16).z (m)=A ₀(m)Gb (m)+ {acute over (η)} (m)  (16)

FIG. 6 is a schematic of a multi-user detection system using two-stageprocessing and a multi-user interference matrix in a wirelesscommunication system, according to certain aspects of the presentdisclosure. FIG. 6 is similar to FIG. 5, but includes a matrixcomputation unit 240 and detection unit 260. The same Stage 1 500 andStage 2 510 processing occurs, as described above with reference to FIG.5. However, according to certain aspects, matrix computation unit 240may compute the multi-user interference matrix A₀(m), for example, andcommunicate the matrix to detection unit 260. Given the value ofmulti-user interference matrix A₀(m) and the received symbols z(m), thedetection unit 260 detects desired user symbols {circumflex over (b)}(m)by solving for the desired symbols b(m) in Eq. (16), for example. Thehat superscript denotes the detected user symbols, which provideestimates of the user symbols at the transmitter side (e.g., basestation 104). It is noted that the received symbols z(m) are previouslydetermined by descrambling and despreading the received chips and G ispreviously known or can be estimated. Examples of methods for estimatingthe gains for different users are discussed below. Based on Eq. (16),various detection and estimation techniques may be employed by detectionunit 260 to determine the desired user symbols, such as minimum meansquare error estimation (MMSE), maximum likelihood detection (MLD) orsphere decoding (SD), maximum a posteriori detection (MAPD), andslicing. Other techniques known in the art may also be used. Althoughthe matrix computation matrix 240 and detection unit 260 are shownseparately in FIG. 6 for ease of illustration, their operations may beperformed by the same processor or multiple processors.

In one aspect, the multi-user interference matrix A₀(m) is a Nu by Numatrix that relates each received symbol z₁(m) to z_(Nu)(m) to acorresponding user symbol and to the other user symbols. For example,for received symbol z₁(m), coefficient [A₀(m)]_(1,1) of the multi-userinterference matrix A₀(m) relates the received symbol z₁(m) to thecorresponding user symbol b₁(m). In addition, the other coefficients[A₀(m)]_(1,2) to [A₀(m)]_(1,Nu) in the first row of the multi-userinterference matrix A₀(m) relate the received symbol z₁(m) to the otheruser symbols b₂(m) to b_(Nu)(m), respectively, which contribute to themulti-user interference for received symbol z₁(m). The same can apply tothe other received symbols.

Therefore, the multi-user interference matrix A₀(m) in this aspectaccounts for multi-user interference when solving for the user symbolsb₁(m) to b_(Nu)(m) in Eq. (16). Thus, the multi-user interference matrixA₀(m) provides multi-user user symbol detection at the symbol levelwhich accounts for multi-user interference without having to performcomplex chip-level multi-user interference cancellation. As a result, adesired symbol may be accurately detected with the use of a broad-rangeof powerful and advanced receivers at the symbol level.

FIG. 7 is a flow diagram illustrating a method of multi-user detectionusing two-stage processing in a wireless communication system, accordingto certain aspects of the present disclosure. At operation 700, chipsare received at a receiver 200 as part of a mobile station 106. Fromoperation 700, the process continues to operation 710, where the chipsare processed into one or more received symbols z(m) for a plurality ofusers. For example, the received chips may be filtered and thendescrambled and despreaded into received symbols.

From operation 710, the process continues to operation 720 where amulti-user interference matrix A₀(m) is computed from the known codes,filter coefficients and a channel estimate (e.g., based on Eq. (13)).The channel may be estimated, for example, using pilot-based channelestimation or data-aided channel estimation, which is described below.

From operation 720, the process continues to operation 730 where thecomputed matrix A₀(m) and received symbols are used to detect thedesired user symbols based on a symbol-level model relating the desireduser symbols b(m) to the received symbols z(m). For example, thesymbol-level, time-varying, multi-user model may be expressed by Eq.(16). In this example, the user symbols {circumflex over (b)}(m) may bedetected by solving for the user symbols b(m) in Eq. (16), using varioustechniques including MMSE, MLD, SD, MAPD and slicing. The matrix A₀(m)relates the received symbol for each user not only to the desired usersymbols for the respective user, but also user symbols for the otherusers. Thus, the matrix A₀(m) accounts for multi-user interference.

To account for multi-user inter-symbol interference, the shouldermatrices A₁(m) and A⁻¹(m) may also be computed in operation 720. Theuser symbols {circumflex over (b)}(m) may then be detected in operation730 using the received symbols z(m) and the matrices A₁(m), A₀(m),A⁻¹(m), for example, by solving for the user symbols b(m) in Eq. (12).One of the shoulder matrices A₁(m) and A⁻¹(m) may be used to detect theuser symbols b(m) instead of using both shoulder matrices. In this case,the term in Eq. (12) corresponding to the shoulder matrix not being usedis omitted when solving for the user symbols b(m) in Eq. (12).

FIG. 8 is a flow diagram illustrating a process of transmitting chips,according to certain aspects of the present disclosure. This process maybe performed, for example, at a base station 104 or other transmitter totransmit chips to a mobile station 106 or other receiving device.

At operation 800, a respective gain is applied to one or more usersymbols to be transmitted. Any conventional means for applying a gainmay be used, and the respective gains may be the same or distinct fromeach other. For example, a base station may adjust the gain applied touser symbols using a power adaption scheme based on feedback from mobilestations.

From operation 800, the process continues to operation 810 wherespreading codes are applied to the one or more gain scaled symbols,respectively. Traditional CDMA spreading techniques, such as applying aWalsh code, may be implemented. The user symbols may be spread, forexample, to separate user symbols for different users. The one or morespread symbols are combined, using a combiner 400, at operation 820.

From operation 820, the process continues to operation 830 where thecombined signal is scrambled. The combined signal may be scrambled, forexample, to separate the combined signal from signals from other cells(e.g., served by other base stations 104). Thereafter, at operation 840,the combined signal is transmitted on a channel 310 h (see FIG. 3).

FIG. 9 is a flow diagram illustrating a method of processing chips intoone or more received symbols for a plurality of users, according tocertain aspects of the present disclosure. This process may be performedat a mobile station 106 or other receiving device.

At operation 900, the received chips are filtered by filter 210 f byfront-end processing unit 210. As noted herein, the front-end processingmay be performed using a channel matched filter and/or an equalizer, forexample. However, other filtering techniques may be implemented withoutdeparting from the scope of the present invention.

From operation 900, the process continues to operation 910, where thefiltered chips are descrambled using descrambling code p*(n), based on aconjugate of the scrambling code p(n) previously used to scramble thesignal at the transmission side. Thereafter, the descrambled chips aredespread at operation 920 using despreading codes based on conjugates ofthe Walsh codes, for example, previously used to spread the signal atthe transmitter side. Each despreading code may correspond to adifferent user or code channel. The despreading and descrambling may beperformed by the despreading and descrambling unit 230. The descramblingand despreading codes may be pre-programmed into memory 250, which iscommunicatively coupled to the descramble and despread unit 230.

From operation 920, the process continues to operation 930 where thedespread chips for each user are summed over one symbol period to obtainthe received symbol for the respective user. The summation may beperformed by the respective summation block 320. The operations in FIG.9 may also be performed in a different order to obtain the receivedsymbols.

FIG. 10 is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 10 includes a module 1000 forreceiving chips. The mobile station 106 also includes a module 1010 forprocessing chips into one or more received symbols for a plurality ofusers, where the chips are filtered through front-end processing unitand then descrambled and despreaded and output as symbols z(m).

The mobile station 106 further includes a module 1020 for calculating amulti-user interference matrix. As described above, a multi-userinterference matrix A₀(m), for example, may be calculated the knowncodes, filter coefficients and channel estimate.

The mobile station 106 further includes a module 1030 for detecting theuser symbols {circumflex over (b)}(m) using the computed matrix A₀(m)and the received symbols z(m) based on a symbol-level, time-varying,multi-user model relating the desired user symbols b(m) to the receivedsymbols z(m). For example, the symbol-level, time-varying, multi-usermodel may be expressed by Eq. (16). In this example, the user symbols{circumflex over (b)}(m) may be detected by solving for the user symbolsb(m) in Eq. (16), using various techniques including MMSE, MLD, SD, MAPDand slicing.

Efficient Computation of Multi-User Interference and Shoulder Matrices

Efficient methods and systems for computing multi-user interference andshoulder matrices are provided, according to certain aspects of thepresent disclosure. In one aspect, when the user symbols are spread byWalsh codes, the multi-user interference and shoulder matrices can beefficiently computed using Fast Hadamard Transforms (FHTs), as discussedin further detail below.

FIG. 11 is a diagram of a multi-channel model according to one aspect.In FIG. 11, the user symbols b₁(m) to b_(Nu)(m) for symbol period m arerepresented in column vector form as b(m), where Nu is a number of usersor code channels. A gain matrix G (block 1110) is applied to the usersymbols b(m). The gain matrix G is a Nu×Nu diagonal matrix that appliesgains g₁ to g_(Nu) to the respective user symbols b₁(m) to b_(Nu)(m) andmay be given as follows:

$\begin{matrix}{G = \begin{bmatrix}g_{1} & \; & {\; 0} \\\; & \ddots & \; \\{0\;} & \; & g_{Nu}\end{bmatrix}} & (17)\end{matrix}$The gain-scaled user symbols are then spread by a spreading matrix W(block 1120). The spreading matrix W is a N×Nu matrix that applies aWalsh code of N chips to each gain-scaled user symbol. The spreadingmatrix W may be given as follows:

$\begin{matrix}{W = \begin{bmatrix}{\underset{\_}{W}}_{1} & \ldots & {\underset{\_}{W}}_{Nu}\end{bmatrix}} & (18)\end{matrix}$where W ₁ is an N×1 column vector representing the Walsh code for thefirst user and W _(Nu) is an N×1 column vector of the Walsh code for theNu^(th) user. Each Walsh code W ₁ to W _(Nu) may comprise N chips. Thespread user symbols are then scrambled by a scrambling matrix P(m)(block 1130). The scrambling matrix P(m) is a N×N diagonal matrix thatapplies a scrambling code of N chips to the spread user symbols. Thescrambling matrix P(m) may be given as follows:

$\begin{matrix}{{P(m)} = \begin{bmatrix}{P( {( {m - 1} )N} )} & \; & 0 \\\; & \ddots & \; \\0 & \; & {P( {{mN} - 1} )}\end{bmatrix}} & (19)\end{matrix}$where (m−1)N to (mN−1) represent a chip index for the N chips of thescrambling code corresponding to symbol period m. After spreading andscrambling, the resulting chips are transmitted over channel h (block1132). The transmitted chips for symbol period m may be represented as aN×1 column vector t(m) as shown in FIG. 11. The transmitted chips forsymbol period m may be given as follows:t (m)=P(m)WGb (m)  (20)The transmitted chips for the previous and next symbol periods m−1 andm+1, respectively, may be given as follows:t (m−1)=P(m−1)WGb (m−1)  (21)t (m+1)=P(m+1)WGb (m+1)  (22)where it is assumed that the Walsh codes and gains are the same for thesymbol periods m−1, m and m+1. In this aspect, the Walsh codes mayrepeat every symbol period.

The transmitted chips are transmitted over channel h (block 1132) to areceiver and filtered at the receiver by front-end filter f (block1135). The output of the filter f for symbol period m may be representedas a N×1 column vector y(m), which may be expressed as:

$\begin{matrix}{{\underset{\_}{y}(m)} = {C\begin{bmatrix}{\underset{\_}{t}( {m - 1} )} \\{\underset{\_}{t}(m)} \\{\underset{\_}{t}( {m + 1} )}\end{bmatrix}}} & (23)\end{matrix}$where C is a matrix for a total filter (block 1140), which is given bythe convolution of the channel h and the filter f. The transmitted chipsfor symbol periods m−1 and m+1 are included in the expression for y(m)to account for inter-symbol interference. The total filter matrix C maybe expressed by a N×3N Toeplitz matrix given as follows:

$\begin{matrix}{C = \lbrack {\underset{\underset{C_{- 1}}{︸}}{\begin{matrix}{c\lbrack N\rbrack} & {c\lbrack {N - 1} \rbrack} & \ldots & {c\lbrack 1\rbrack} \\\; & \ddots & \ddots & \vdots \\\; & \; & \ddots & {c\lbrack {N - 1} \rbrack} \\\; & \; & \; & {c\lbrack N\rbrack}\end{matrix}}\underset{\underset{C_{0}}{︸}}{\begin{matrix}{c\lbrack 0\rbrack} & {c\lbrack {- 1} \rbrack} & \ldots & {c\lbrack {{- N} + 1} \rbrack} \\{c\lbrack 1\rbrack} & \ddots & \ddots & \vdots \\\vdots & \ddots & \ddots & {c\lbrack {- 1} \rbrack} \\{c\lbrack {N - 1} \rbrack} & \ldots & {c\lbrack 1\rbrack} & {c\lbrack 0\rbrack}\end{matrix}}\underset{\underset{C_{1}}{︸}}{\begin{matrix}{c\lbrack {- N} \rbrack} & \; & \; & \; \\{c\lbrack {{- N} + 1} \rbrack} & \ddots & \; & \; \\\vdots & \ddots & \ddots & \; \\{c\lbrack {- 1} \rbrack} & \ldots & {c\lbrack {{- N} + 1} \rbrack} & {c\lbrack {- N} \rbrack}\end{matrix}}} \rbrack} & (24)\end{matrix}$where the filter length spans 2N chips (−N to N), and C¹⁻, C₀, and C₁represent the portions of the total filter matrix C that are applied tothe transmitted chips for the previous, current and next symbol periods,respectively. The total filter matrix C may be represented by [C⁻¹ C₀C₁]. Plugging the expressions for the transmitted chips in Eqs.(20)-(22) into the expression for the filter output y(m) in Eq. (23)results in:

$\begin{matrix}{{\underset{\_}{y}(m)} = {\sum\limits_{l = {- 1}}^{1}{C_{l}{P( {m + l} )}{WG}{\underset{\_}{b}( {m + l} )}}}} & (25)\end{matrix}$

After filtering by the front-end filter f, the filter output y(m) isdescrambled by descrambling matrix P^(H)(m) (block 1150), which is theHermitian of the scrambling matrix P(m). After descrambling, thedescrambled filter output is despread by despreading matrix W^(T) (block1160), which is the transpose of the spreading matrix W. Thedescrambling and despreading result in received symbols z(m) for users 1to Nu. The received symbols z(m) may be given as follows:z (m)=W ^(T) P ^(H)(m) y (m)  (26)Plugging the expression for y(m) into Eq. (26) results in:

$\begin{matrix}{{\underset{\_}{z}(m)} = {W^{T}{P^{H}(m)}{\sum\limits_{l = {- 1}}^{1}{C_{l}{P( {m + l} )}{WG}{\underset{\_}{b}( {m + l} )}}}}} & (27)\end{matrix}$Based on Eq. (27), the multi-user interference and shoulder matricesA⁻¹, A₀, A₁, respectively, for symbol period m may be represented asfollows:A ⁻¹(m)=W ^(T) P ^(H)(m)C ⁻¹ P(m−1)W  (28)A ₀(m)=W ^(T) P ^(H)(m)C ₀ P(m)W  (29)A ₁(m)=W ^(T) P ^(H)(m)C ₁ P(m+1)W  (30)Using Eqs. (28)-(30), the multi-user interference and shoulder matricesA⁻¹, A₀, A₁ can be computed. In one aspect, Fast Hadamard Transforms(FHTs) are used to efficiently compute the multi-user interference andshoulder matrices A⁻¹, A₀, A₁, as discussed below.

A FHT operation computes the product of a Hadamard matrix and a vector,in which a 2^(n) order Hadamard matrix may be recursively defined by:

$\begin{matrix}{H_{2^{n}} = \begin{bmatrix}H_{2^{n - 1}} & H_{2^{n - 1}} \\H_{2^{n - 1}} & {- H_{2^{n - 1}}}\end{bmatrix}} & (31)\end{matrix}$where H₂ is given by:

$\begin{matrix}{H_{2} = \begin{bmatrix}1 & 1 \\1 & {- 1}\end{bmatrix}} & (32)\end{matrix}$A FHT operation may also be used to compute the product of a Hadamardmatrix and a matrix since a matrix may be represented by multiplevectors. Computationally efficient systems and methods have beendeveloped to perform FHT operations. For example, a description ofcomputationally efficient FHT operations can be found in U.S. Pat. No.5,561,618, titled “Method and Apparatus for Performing a Fast HadamardTransform,” issued on Oct. 1, 1996, the specification of which isincorporated herein by reference.

A Walsh matrix may be transformed into a Hadamard matrix by re-orderingthe rows or columns of the Walsh matrix. Alternatively, the Walsh codesin the Walsh matrix may already be ordered to form a Hadamard matrix, inwhich case the Walsh matrix does not need to be transformed. Theseproperties of the Walsh matrix can be exploited to efficiently computethe multi-user interference and shoulder matrices in Eqs. (28)-(30)using FHT operations.

In one aspect, the spreading matrix W in Eqs. (28)-(30) is a Walshmatrix that can be transformed into a Hadamard matrix by reordering therows or columns of the matrix W. The despreading matrix W^(T) in Eqs.(28)-(30) is a transpose of the spreading matrix W that may beconsidered a Walsh matrix that can also be transformed into a Hadamardmatrix by reordering the rows or columns of the matrix W^(T). In thisaspect, the product of the Walsh matrix W and another matrix in Eqs.(28)-(30) may be efficiently computed using FHT operations by reorderingthe rows or columns of the Walsh matrix W to transform the Walsh matrixW into a corresponding Hadamard matrix, and reordering the rows orcolumns of the other matrix in a similar manner. The other matrix may beone or a combination of matrices in Eqs. (28)-(30). FHT operations arethen used to compute the product of the corresponding Hadamard matrixand the other matrix with its rows or columns reordered. After the FHToperations, the rows or columns of the resulting matrix may be reorderedin a reverse manner as the Walsh matrix W to obtain the desired product.The reordering operations are not needed if the Walsh codes in the Walshmatrix W are already ordered to form a Hadamard matrix, in which casethe FHT operations can be applied directly to the Walsh matrix W.

The product of the Walsh matrix W^(T) and another matrix in Eqs.(28)-(30) may also be computed using FHT operations in a similar manner.The matrices in Eqs. (28)-(30) selected for the FHT operations may bebased on, e.g., a selection resulting in an efficient hardware and/orsoftware implementation. Two examples of using FHT operations toefficiently compute the multi-user interference and shoulder matricesare provided below.

In one example, FHT operations can be used to efficiently compute theproduct given by:A ₀(m)=W ^(T) M  (33)where W^(T) is the despreading matrix, which in this example is a Walshmatrix comprising a plurality of Walsh codes, and M is a combined matrixgiven by:M=P ^(H)(m)C ₀ P(m)W  (34)The product of matrices W^(T) and M is equivalent to Eq. (29) forcomputing the interference matrix A₀ where matrix W^(T) corresponds tothe despreading matrix. In order to apply FHT operations, the Walshmatrix W^(T) is transformed into a Hadamard by reordering the rows(Walsh codes) in the matrix W^(T). The rows of matrix M are alsoreordered in a similar manner as matrix W^(T). After row reordering, theproduct may be given by:A ₀′(m)=HM′  (35)where H is the Hadamard matrix corresponding to W^(T) and M′ is matrix Mafter the rows have been reordered. FHT operations may then be used toefficiently compute the product in Eq. (35). After the FHT operations,the rows of the resulting matrix A₀′ may be reordered in a reversemanner as matrix W^(T) to obtain the interference matrix A₀. Theshoulder matrices A⁻¹ and A₁ may be computed in a similar manner usingFHT operations.

The matrix M in Eq. (33) may also be computed using FHT operations. Inone aspect, the matrix M may be expressed by:M=[[P ^(H)(m)C ₀ P(m)W] ^(T)]^(T)  (36)using the property:M=[M ^(T)]^(T)  (37)where T is a transpose. Equation (36) may be rewritten as follows:M=[W ^(T)(P ^(H)(m))^(T) C ₀ ^(T) P ^(T)(m)]^(T)  (38)M=[W ^(T) P ^(T)(m)C ₀ ^(T)(P ^(H)(m))^(T)]^(T)  (39)M=[W ^(T)(P ^(T)(m)C ₀ ^(T) P*(m))]^(T)  (40)

In one aspect, matrix M in Eq. (40) is efficiently computed using FHToperations. To do this, the matrix W^(T) is transformed into acorresponding Hadamard matrix by re-ordering the rows of the matrixW^(T), and the rows of the combined matrix P^(T)(m)C₀ ^(T)P*(m) arereordered in a similar manner. After row reordering, the product may beefficiently computed using FHT operations. After the FHT operations, therows of the resulting matrix are reordered in a reverse manner as therows of W^(T). Finally, after row reordering, the transpose of theresulting matrix is taken to obtain the matrix M. The matrix M for theshoulder matrices A⁻¹ and A₁ may be computed in a similar manner usingFHT operations.

FIG. 12 a is a flow diagram illustrating a process of multi-userdetection using a Hadamard matrix in a wireless communication system,according to certain aspects of the present disclosure. Chips arereceived at a receiver 200 as part of a mobile station 106. At operation1220 the received chips are processed into one or more received symbolsfor a plurality of users.

From operation 1220, the process continues to operation 1230 where amulti-user interference matrix is computed using a Hadamard matrix. Forexample, the multi-user interference matrix may be computed bytransforming a Walsh matrix in Eq. (29) into the Hadamard matrix andmultiplying the Hadamard matrix with one or a combination of the othermatrices in Eq. (29) using FHT operations. If the Walsh matrix isalready in Hadamard form, then the Wlash matrix may be directlymultiplied with the other matrix using FHT operations.

From operation 1230, the process continues to operation 1240 where thecomputed multi-user interference matrix and received symbols are used todetect the desired user symbols.

FIG. 12 b is a flow diagram illustrating a process of computing themulti-user interference matrix using a Hadamard matrix, according tocertain aspects of the present disclosure. At operations 1232, a Walshmatrix is transformed into a Hadamard matrix, for example, by reorderingrows or columns of the Walsh matrix. The Walsh matrix may be a spreadingmatrix or a despreading matrix comprising a plurality of Walsh codes.The Hadamrd matrix corresponding to the Walsh matrix may be stored inmemory and retrieved from memory when computing the multi-userinterference matrix.

From operation 1232, the process continues to continues to operation1234 where the Hadamard matrix is multiplied by another matrix. Forexample, the other matrix may be a scrambling matrix, a descramblingmatrix, a total filter matrix or a combination thereof. The rows orcolumns of the other matrix may be reordered to match the reordering ofrows or columns of the Walsh matrix in operations 1232. Themultiplication in operation 1234 may be performed using FHT operationsfor efficient computation.

From operation 1234, the process continues to operation 1236 where therows or columns of the matrix resulting from operation 1234 arereordered. For example, the rows or columns of the resulting matrix maybe reordered in a reverse manner as the Walsh matrix. The reorderingoperations described above may be omitted if the Walsh codes of theWalsh matrix are already ordered in the form of a Hadamard matrix. Inthis case, FHT operations can be used directly to multiply the Walshmatrix by the other matrix to compute the matrices A⁻¹, A₀, A₁. Inaddition, FHT operations may be used to perform the despreading.

From operation 1236, the process continues to operation 1268 where theresulting matrix from operation 1234 is used to compute the multi-userinterference matrix.

FIG. 12 c is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 12 c includes a module 1250 forprocessing chips into one or more received symbols for a plurality ofusers, where the chips are filtered through front-end processing unitand then descrambled and despreaded and output as symbols z(m).

The mobile station 106 further includes a module 1260 for computing amulti-user interference matrix using a Hadamard Matrix. As describedabove, the Hadamard Matrix allows efficient computation of themulti-user interference matrix using FHT operations. The mobile station106 further includes a module 1270 for detecting the user symbols{circumflex over (b)}(m) using the multi-user interference matrix (e.g.,based on Eq. (16)) and the received symbols z(m).

FIG. 13 is a schematic of a system 1305 for computing the multi-userinterference and shoulder matrices A⁻¹, A₀, A₁, according to certainaspects of the present disclosure. In this aspect, the system 1305comprises a matrix computation unit 1310, a code unit 1320, a channelestimation unit 1330, and a filter computation unit 1340. The code unit1320 provides descrambling code p*(n) and despreading codes w*₁(n) tow*_(Nu)(n) to the matrix computation unit 1310. The code unit 1320 maystore descrambling and despreading codes for many cells in the memory250 (shown in FIG. 2) and output the codes for the cell currentlyserving the mobile station 106. The code unit 1320 may also provide thescrambling code p(n) and spreading codes w₁(n) to w_(Nu)(n) to thematrix computation unit 1310 (not shown in FIG. 13). Alternatively, thecode unit 1320 may provide either the scrambling codes or descramblingcodes to the matrix computation unit 1310, in which case the matrixcomputation unit 1310 can derive the scrambling codes or descramblingcodes from the received codes. The same applies to the spreading anddespreading codes.

The channel estimation unit 1330 provides a channel estimate h to thematrix computation unit 1310. The channel estimation unit 1330 mayestimate the channel using pilot-based channel estimation, data-aidedchannel estimation or any other channel estimation technique. Data-aidedchannel estimation is described in further detail below.

The filter computation unit 1340 provides the filter f parameter to thematrix computation unit 1310. In one aspect, the filter computation unit1340 may compute the filter coefficients for the front-end filter andprovide the filter f parameter to the matrix computation unit 1310 basedon the computed filter coefficients. For an example of a channel-matchedfilter (CMF), the filter coefficients, and hence the filter f parameter,may be based on a time-inverse conjugate h*(−n) of the channel estimateh.

In one aspect, the matrix computation unit 1310 may use the receivedchannel estimate h and filter f parameter to compute the total filtermatrix C (e.g., based on Eq. (24)). The matrix computation unit 1310 maythen compute the multi-user interference and shoulder matrices A⁻¹, A₀,A₁ using the total filter matrix C and the scrambling, descrambing,spreading and despreading matrices derived from the received codes(e.g., based on Eqs. (28)-(30)). The matrix computation unit 1310 mayuse FHT operations to efficiently compute the multi-user interferenceand shoulder matrices when Walsh codes are used for spreading, asdiscussed above. The matrix computation 1310 may then provide thecomputed multi-user interference and shoulder matrices A⁻¹, A₀, A₁ tothe detection unit 260 or any other detection unit including any of thedetection units discussed in the present disclosure.

Multi-User Interference Cancellation

In an aspect of the disclosure, multi-user detection systems and methodsare provided with symbol-level multi-user interference cancellation. Inthis aspect, user symbols for the symbol periods m−1, m, and m+1 areinitially detected, and the initially detected user symbols are used tocompute multi-user interference for symbol period m. The computedmulti-user interference is then removed (cancelled) from the receivedsymbols for symbol period m. The user symbols for symbol period m arethen redetected from the received symbols with the computed multi-userinterference removed.

In this aspect, the initially detected user symbols for symbol periodsm−1, m, and m+1 may be represented in vector form as {circumflex over(b)}(m−1), {circumflex over (b)}(m), and {circumflex over (b)}(m+1),respectively. The initial user symbol detection may be performed usingany detection technique including any of the detection techniquesdescribed in the present disclosure. For example, user symbols for acertain symbol period may be initially detected from the receivedsymbols for the same symbol period using Eq. (16), in which inter-symbolinterference is neglected to simplify the detection computation. In thisexample, once the interference matrix, gain matrix and received datasymbols in Eq. (16) are known, various techniques may be applied to Eq.(16) to solve for the desired user symbols including MMSE, MLD, SD,MAPD, and slicing.

After the user symbols {circumflex over (b)}(m−1) and {circumflex over(b)}(m+1) for symbol periods m−1 and m+1 are initially detected,multi-user inter-symbol interference for symbol period m may be computedas follows:Î _(inter-symbol)(m)=A ⁻¹(m)G{circumflex over (b)} (m−1)+A₊₁(m)G{circumflex over (b)} (m+1)  (41)where A⁻¹(m) and A₊₁(m) are shoulder matrices (which may be computedusing Eqs. (15) and (14), respectively) and G is the gain matrix (whichmay be given by Eq. (17)). For each user, Eq. (41) accounts forinter-symbol interference from other users as well as inter-symbolinterference from the previous and next user symbols for the same user.

After the user symbol {circumflex over (b)}(m) for symbol period m isinitially detected, the multi-user interference from user symbols atsymbol period m may be computed as follows:Î _(multi-user)(m)=A ₀(m)G{circumflex over (b)} (m)−diag{A₀(m)}G{circumflex over (b)} (m)  (42)where A₀(m) is the multi-user interference matrix (which may be computedusing Eq. (13)) and diag{A₀(m)} is a diagonal matrix, in which only thediagonal coefficients in the multi-user interference matrix are retained(i.e., non-diagonal coefficients are zero). The multi-user interferencematrix A₀(m) not only relates the received symbols to multi-userinterference, but also relates the received data symbols to theirrespective desired user symbols. Therefore, the diagonal matrixdiag{A₀(m)} is used in Eq. (42) to subtract out the portion ofA₀(m)G{circumflex over (b)}(m) that is contributed by the respectivedesired user symbols so that only the multi-user interference remains inEq. (42).

The interferences given in Eqs. (41) and (42) may be combined to expressthe multi-user interference Î(m) for symbol period m as follows:Î (m)={A ⁻¹(m)G{circumflex over (b)} (m−1)+A ₊₁(m)G{circumflex over (b)}(m+1)}+A ₀(m)G{circumflex over (b)} (m)−diag{A ₀(m)}G{circumflex over(b)} (m)  (43)The computed multi-user interference Î(m) for symbol period m in Eq.(43) accounts for multi-user interference from user symbols at symbolperiod m as well as multi-user inter-symbol interference from usersymbols at the previous symbol period m−1 and the next symbol periodm+1. The inter-symbol interference in Eq. (43) may be omitted tosimplify the multi-user interference computation.

After the multi-user interference Î(m) is computed using the initiallydetected user symbols {circumflex over (b)}(m−1), {circumflex over(b)}(m), and {circumflex over (b)}(m+1), the computed multi-userinterference may be removed (cancelled) from the received symbols asfollows:{tilde over (z)} (m)= z (m)− Î (m)  (44)where z(m) is a vector of the received symbols for symbol period m, and{tilde over (z)}(m) is a vector of the received symbols for symbolperiod m with the computed interference removed. Plugging the expressionfor the multi-user interference from Eq. (43) into Eq. (44) results in:{tilde over (z)} (m)= z (m)−{A ⁻¹(m)G{circumflex over (b)} (m−1)+A₊₁(m)G{circumflex over (b)} (m+1)}−A ₀ [m]G{circumflex over (b)}(m)+diag{A ₀(m)}G{circumflex over (b)} (m)  (45)After the computed interference is removed from the received symbols toobtain {tilde over (z)}(m), the desired user symbols {circumflex over({circumflex over (b)}(m) may be redetected from {tilde over (z)}(m).

Thus, this aspect uses information about the user symbols for symbolperiods m−1, m, m+1 obtained from the initial detection to computemulti-user interference at the symbol level. The computed multi-userinterference is then removed (cancelled) from the received symbols forsymbol period m, thereby canceling multi-user interference from thereceived symbols. The multi-user interference cancellation providesimproved multi-user detection with cancellation gain. Further, themulti-user interference is computed and removed from the receivedsymbols at the symbol level without having to perform complex chip-levelmulti-user interference cancellation.

In one aspect, the desired user symbols {circumflex over ({circumflexover (b)}(m) are redetected from the received symbols {tilde over(z)}(m) with the computed interference removed using slicing as follows:{circumflex over ({circumflex over (b)} (m)=slice( {tilde over (z)}(m))  (46)For an example of Binary Phase Shift Keying (BPSK) modulation, theslicing may be given as follows:slice( {tilde over (z)} (m))=sign{Re( {tilde over (z)} (m))}  (47)In the example of BPSK modulation, the bit value of a user symbol may bedecided based a sign of the received symbol {tilde over (z)}(m) withinterference cancellation. For an example of Quadrature Phase ShiftKeying (QPSK) modulation, in which each symbol represents two bits, theslicing may be given as follows:

$\begin{matrix}{{{slice}( {\underset{\_}{\overset{\sim}{z}}(m)} )} = {{\frac{1}{\sqrt{2}}{sign}\{ {{Re}( {\underset{\_}{\overset{\sim}{z}}(m)} )} \}} + {\frac{j}{\sqrt{2}}{sign}\{ {{Im}( {\underset{\_}{\overset{\sim}{z}}(m)} )} \}}}} & (48)\end{matrix}$In the example of QPSK modulation, the two bit values of a user symbolmay be decided based on the signs of the real and imaginary parts of thereceived symbol {tilde over (z)}(m) with interference cancellation.Other detection techniques may be used to redetect the user symbols{circumflex over ({circumflex over (b)}(m) besides slicing. Also, othermodulation schemes may be used for the user symbols, for example16-Quadrature Amplitude Modulation (QAM) where each user symbol carriesfour bits of information. Further, the above slicing may be used in theinitial detection of the user symbols.

FIG. 14 is a schematic of a multi-user detection system 1405 withinterference cancellation, according to certain aspects of the presentdisclosure. The detection system 1405 may be at a mobile station in awireless communication system. The detection system 1405 comprises afilter 1410 for filtering received chips r(n), a descramble unit 1415for descrambling the filtered chips, and a despread unit 1420 fordespreading the descrambled chips into received data symbols z(m). Thefilter 1410 may comprise an equalizer, and/or a channel-matched filter.After filtering, the descramble unit 1415 descrambles the filtered chipsusing a descrambling code. The despread unit 1420 then despreads thedescrambled chips using a set of despreading codes. In one aspect, eachdespreading code may correspond to a different user and may be used toobtain a received symbol for the corresponding user. In this aspect, thedespread unit 1420 outputs a set of received symbols z(m) during eachsymbol period using the set of despreading codes.

The detection system 1405 further comprises a detection unit 1430, amatrix computation unit 1440, an interference cancellation unit 1450,and a redetection unit 1460. The detection unit 1430 performs an initialdetection of the desired user symbols from the received symbols z(m)during each symbol period. The detection unit 1430 may initially detectthe user symbols {circumflex over (b)}(m) using any detection techniqueincluding any of the detection techniques discussed in the presentdisclosure.

The interference cancellation unit 1450 receives the initially detecteduser symbols {circumflex over (b)}(m) for each symbol period from thedetection unit 1430. In one aspect, the interference cancellation unit1450 computes multi-user interference Î(m) for the symbol period m usingEq. (43) and the initially detected user symbols {circumflex over(b)}(m−1), {circumflex over (b)}(m) and {circumflex over (b)}(m+1) forthe symbol periods m−1, m, m+1, respectively, from the detection unit1430. In this aspect, the cancellation unit 1450 may obtain the usersymbols {circumflex over (b)}(m−1), {circumflex over (b)}(m) and{circumflex over (b)}(m+1) by storing initially detected user symbolsfrom the detection unit 1430 over a period of at least three symbolperiods into memory (e.g., a buffer). In this aspect, the interferencecancellation unit 1450 waits until the initially detected user symbols{circumflex over (b)}(m+1) for symbol period m+1 are received beforegoing back and computing the multi-user interference Î(m) for symbolperiod m.

After computing the multi-user interference, the interferencecancellation unit 1450 removes the computed interference Î(m) from thereceived symbols z(m) to obtain the received symbols {tilde over (z)}(m)with the computed interference removed.

The redetection unit 1460 receives the received symbols {tilde over(z)}(m) with the computed interference removed, redetects the desireduser symbols {circumflex over ({circumflex over (b)}(m) from {tilde over(z)}(m), and outputs the user symbols {circumflex over ({circumflex over(b)}(m). For example, the redetection unit 1460 may redetect the desireduser symbols {circumflex over ({circumflex over (b)}(m) by slicing thereceived symbols {tilde over (z)}(m) with the computed interferenceremoved.

The matrix computation unit 1440 computes the interference and shouldermatrices A⁻¹, A₀, A₊₁ for each symbol period, and supplies the matricesto the detection unit 1430 and the interference cancellation unit 1450.The matrix computation unit 1440 may compute the matrices A⁻¹, A₀, A₊₁using FHT operations and/or any technique.

FIG. 15 is a schematic of a multi-user detection system 1505 withinterference cancellation, according to certain aspects of the presentdisclosure. The detection system 1505 may be at a receiver in a wirelesscommunication system. The detection system 1505 comprises a filter 1510for filtering received chips r(n), and a descramble and despread unit1520. The filter 1510 may comprise an equalizer, and/or achannel-matched filter (CFM).

The descramble and despread unit 1520 comprises a descramble mixer 1515,a plurality of despread mixers 1522 and a plurality of correspondingsummation blocks 1525. The descramble mixer 1515 mixes the filteredreceived chips y(n) with a descrambling code p*(n) to descramble thefiltered received chips y(n). The descrambling code p*(n) may be aconjugate of the scrambling code used at the transmitter side (e.g.,base station). The despread mixers 1522 then mix the descrambled signalwith a set of despreading codes w₁*(n) to w_(Nu)*(n) corresponding tomultiple users 1 to Nu, respectively. The despreading codes w₁*(n) tow_(Nu)*(n) may be conjugates of the spreading codes used at thetransmitter side (e.g., base station 104). The despread signal from eachdespread mixer 1522 is inputted to the respective summation block 1525,which accumulates the despread signal over a period of one symbol toproduce a received symbol for the corresponding user. The descramble anddespread unit 1520 outputs a set of received symbols z₁(m) to z_(Nu)(m)for the multiple users during each symbol period. Thus, the descrambleand despread unit 1520 converts the filtered received chips from thechip-level to the symbol-level. The set of received symbols z₁(m) toz_(Nu)(m) may also be expressed in vector form as z(m).

The detection system 1505 also comprises a detection unit 1530, acancellation and redetection unit 1560, a code unit 1535 and a matrixcomputation unit 1540. The detection unit 1530 performs an initialdetection of the desired user symbols from the received symbols z₁(m) toz_(Nu)(m). The detection unit 1530 may initially detect the user symbols{circumflex over (b)}₁(m) to {circumflex over (b)}_(Nu)(m) using anydetection technique including any of the techniques discussed in thepresent disclosure. For example, the detection unit 1530 may initiallydetect the user symbols {circumflex over (b)}₁(m) to {circumflex over(b)}_(Nu)(m) by solving for the desired user symbols in Eq. (16) usingany one of a number of different techniques including MMSE, MLD, SD,MAPD, and slicing. The user symbols {circumflex over (b)}₁(m) to{circumflex over (b)}_(Nu)(m) may also be expressed in vector form as{circumflex over (b)}(m).

The cancellation and redetection unit 1560 receives the initiallydetected user symbols {circumflex over (b)}₁(m) to {circumflex over(b)}_(Nu)(m) for each symbol period from the detection unit 1530, andcomputes the multi-user interference for the symbol period m (e.g.,based on Eq. (43)) using the initially detected user symbols for thesymbol periods m−1, m, m+1, respectively, from the detection unit 1530.In this aspect, the cancellation and redetection unit 1560 may comprisememory 250 (shown in FIG. 2) to store initially detected user symbolsfrom the detection unit 1530 over a period of at least three symbolperiods. The cancellation and redetection unit 1560 may then use thestored initially detected user symbols for the symbol periods m−1, m,m+1 to compute the multi-user interference for symbol period m. Thecancellation and redetection unit 1560 removes the computed interferencefor symbol period m from the received symbols z₁(m) to z_(Nu)(m) forsymbol period m. The cancellation and redetection unit 1560 thenredetects the user symbols {circumflex over ({circumflex over (b)}₁(m)to {circumflex over ({circumflex over (b)}_(Nu)(m) from the receivedsymbols with the computed interference removed, and outputs theredetected user symbols {circumflex over ({circumflex over (b)}₁(m) to{circumflex over ({circumflex over (b)}_(Nu)(m). The redetected usersymbols {circumflex over ({circumflex over (b)}₁(m) to {circumflex over({circumflex over (b)}_(Nu)(m) may be expressed in vector form as{circumflex over ({circumflex over (b)}(m).

The code unit 1535 supplies the descrambling and despreading codes tothe descramble and despread unit 1520 and the matrix computation unit1565. The despreading codes may be stored in memory 250 (not shown inFIG. 15). The matrix computation unit 1540 computes the interference andshoulder matrices A⁻¹, A₀, A₊₁ for each symbol period, and supplies thematrices to the detection unit 1530 and the cancellation and redetectionunit 1560.

FIG. 16 a is a flow diagram illustrating a process of multi-userdetection with interference cancellation, according to certain aspectsof the present disclosure. This process may be performed, for example,at a mobile station 106 to detect user symbols from the transmitter side(e.g., base station 104), where the detected user symbols are estimatedof the user symbols at the transmitter side.

At operation 1610, user symbols are initially detected from receivedsymbols. For example, user symbols for a certain symbol period may beinitially detected from the received symbols for the same symbol periodby solving for the user symbols in Eq. (16) using any one of a varietyof techniques including MMSE, MLD, SD, MAPD, and slicing.

From operation 1610, the process continues to operation 1620 wheremulti-user interference is computed using the initially detected usersymbols. For example, the multi-user interference for symbol period mmay be computed using Eq. (43) and the initially detected user symbolsfor symbol periods m−1, m, and m+1.

From operation 1620, the process continues to operation 1630 where thecomputed multi-user interference is removed from the received symbols.

From operation 1630, the process continues to operation 1640 where theuser symbols are redetected from the received symbols with the computedinterference removed. For example, the user symbols may be redetected byslicing the received symbols with the computed interference removed.

FIG. 16 b is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 16 b includes a module 1650 forprocessing chips into one or more received symbols for a plurality ofusers, where the chips are filtered through front-end processing unitand then descrambled and despreaded and output as symbols z(m).

The mobile station 106 further includes a module 1660 for detecting usersymbols from the received symbols. For example, the user symbols may bedetected by slicing the received symbols. The mobile station 106 furthercomprises a module 1670 for computing multi-user interference using thedetected user symbols (e.g., based on Eq. (43)). The mobile station 106further includes a module 1680 for removing the computed multi-userinterface from the received symbols and a module 1690 for redetectingthe user symbols from the received symbols with the computed multi-userinterference removed (cancelled out).

FIG. 17 is a schematic of a multi-user detection system 1705 withiterative interference cancellation, according to certain aspects of thepresent disclosure. The detection system 1705 may be at a receiver in awireless communication system. The detection system 1705 according tothis aspect is similar to the detection system 1405 in FIG. 14, in whichan iterative process is used to refine the redetected user symbols.

In one aspect, multi-user cancellation and redetection are repeated inan iterative process to refine the redetected user symbols. In thisaspect, the multi-user interference for each iteration may be given asfollows:Î ^((k))(m)={A ⁻¹(m)G{circumflex over (b)} ^((k-1))(m−1)+A₊₁(m)G{circumflex over (b)} ^((k-1))(m+1)}−A ₀(m)G{circumflex over (b)}^((k-1))(m)+diag{(m)}G{circumflex over (b)} (m)  (49)where k is an iteration index, Î ^((k))(m) is the multi-userinterference for iteration k, and {circumflex over (b)} ^((k-1))(m−1),{circumflex over (b)} ^((k-1))(m), and {circumflex over (b)}^((k-1))(m+1) are the redetected user symbols from the previousiteration k−1 for symbol periods m−1, m, and m+1, respectively.

For each iteration, the received user symbols with the multi-userinterference removed may be given as:{tilde over (z)} ^((k))(m)= z (m)− Î ^((k))(m)  (50)where k is the iteration index, z(m) is a vector of the received symbolsand {tilde over (z)} ^((k))(m) is a vector of the received symbols withthe multi-user interference for iteration k removed (subtracted out).After {tilde over (z)} ^((k))(m) is computed for iteration k, the usersymbols for iteration k may be redetected using any detection technique.For example, the user symbols {circumflex over (b)} ^((k))(m) foriteration k may be redetected by slicing {tilde over (z)} ^((k))(m) asfollows:{circumflex over (b)} ^((k))(m)=slice( {circumflex over (z)}^((k))(m))  (51)After the user symbols {circumflex over (b)} ^((k))(m) are redetectedfor iteration k, the user symbols {circumflex over (b)} ^((k))(m) foriteration k may be used to compute the multi-user iteration for the nextiteration k+1 or may be outputted by the detection system 1705 with nomore iterations.

The user symbols for the previous and next symbol periods {circumflexover (b)} ^((k))(m−1) and {circumflex over (b)} ^((k))(m+1) may also beredetected for iteration k in a manner similar to {circumflex over (b)}^((k))(m). For example, the interference Î ^((k))(m−1) for the previoussymbol period {circumflex over (b)} ^((k))(m−1) may be computed usingthe redetected user symbols {circumflex over (b)} ^((k-1))(m−2),{circumflex over (b)} ^((k))(m−1), and {circumflex over (b)} ^((k-1))(m)from the previous iteration k−1 for symbol periods m−2, m−1, and m,respectively. The computed interference Î ^((k))(m−1) may then beremoved from the received symbol z(m−1) for symbol period m−1 forredetection. The user symbols for the next symbol period {circumflexover (b)} ^((k))(m+1) may be redetected for iteration k in a similarmanner.

In one aspect, received symbols may be processed block-by-block, inwhich received symbols are collected over a block of L symbol periods(e.g., 100 symbol periods), stored in memory, and processed together.During each iteration in a block, the user symbols for all of the symbolperiods in the block may be redetected for the current iteration beforeadvancing to the next iteration. This way, the interference computationsfor each symbol period in the block has access to redetected usersymbols for the previous and next symbol periods in the block from theprevious iteration.

The received symbols may also be processed symbol-by-symbol. In thisaspect, the interference computations for the current symbol period mayuse previously stored redetected user symbols for the previous symbolperiod, and use initially detected user symbols for the next symbolperiod for all iterations.

In another aspect, the interference computations for the current symbolsmay use initially detected user symbols for the previous and nextsymbols periods for all iterations. Thus, in this aspect, only the usersymbols for the current symbol period are updated in each iteration.

In the example illustrated in FIG. 17, the detection unit 1730 initiallydetects user symbols {circumflex over (b)}(m), which may be similar tothe initial detection in FIG. 14. The initially detected user symbolsmay be expressed in terms of the iteration index as {circumflex over(b)} ⁽⁰⁾(m) where k=0, as shown in FIG. 17. The cancellationinterference unit 1750 then computes the multi-user interference Î⁽¹⁾(m) for the first iteration k=1 using the initially detected usersymbols {circumflex over (b)} ⁽⁰⁾(m), and removes the computedmulti-user interference Î ⁽¹⁾(m) from the received symbols z(m). Theredetection unit 1760 then redetects the user symbols {circumflex over(b)} ⁽¹⁾(m) for the first iteration from the received symbols {tildeover (z)} ⁽¹⁾(m) with the computed multi-user interference Î ⁽¹⁾(m)removed. The redetected user symbols {circumflex over (b)} ⁽¹⁾(m) fromthe redetection unit 1760 may then be fed back to the interferencecancellation unit 1750 using feedback path 1752 to perform anotheriteration (e.g., based on Eqs. (49)-(51)).

The detection system 1705 may perform any number of iterations (e.g.,one or more) to refine the redetected user symbols. For example, thedetection system 1705 may perform iterations until the redetected usersymbols for consecutive iterations converge (e.g., differences betweenthe user symbols for consecutive iterations are small) and/or othercriteria are met. In another example, a predetermined number ofiterations may be programmed into the detection system 1705. In thisexample, the detection system 1705 may increment a counter each time aniteration is performed and stop iterating when the counter reaches theprogrammed number of iterations.

In one aspect, the feedback 1752 path between the redetection unit 1760and interference cancellation unit 1750 may include a buffer 1755 totemporarily store user symbols from the redetection unit 1760 for a nextiteration. In this aspect, the buffer 1755 may be used to storeredetected user symbols over a block of L symbols periods (e.g., 100symbols periods) to implement block-by-block processing as describedabove.

Although the detection unit 1730 and redetection unit 1760 are shownseparately in FIG. 17, their operations may be performed by a commondetection unit. Further, the detection unit 1730 and the redetectionunit 1760 may both use the same detection technique, e.g., slicing. Inthis example, the initial user symbol detection may be performed byapplying the same detection technique to the received symbols z(m).

FIG. 18 is a flow diagram illustrating a process of multi-user detectionwith iterative interference cancellation, according to certain aspectsof the present disclosure. At operation 1810, user symbols are initiallydetected from received symbols.

From operation 1810, the process continues to operation 1820 wheremulti-user interference is computed. For a first iteration, themulti-user interference may be computed using the initially detecteduser symbols in operation 1810. For subsequent iterations, themulti-user interference may be computed using redetected user symbolsfrom operation 1840 in a previous iteration, which is discussed furtherbelow.

From operation 1820, the process continues to operation 1830 where thecomputed multi-user interference from operation 1820 is removed from thereceived symbols.

From operation 1830, the process continues to operation 1840 where theuser symbols are redetected from the received symbols with the computedinterference removed. For example, the user symbols may be redetected byslicing the received symbols with the computed interference removed.

From operation 1840, the process continues to operation 1850, whichdetermines whether another iteration is needed. If another iteration isneeded, then the process returns to operation 1820 to perform the nextiteration. In this case, the multi-user interference is re-computed inoperation 1820 using the redetected user symbols from operation 1840 inthe previous iteration. The recomputed multi-user interference is thenremoved from the received symbols in operation 1830 and the user symbolsare redetected from the received symbols with the recomputedinterference removed in operation 1840. The process then continues tooperation 1850 to determine whether yet another iteration is needed.Operations 1820 through 1850 can be repeated any number of times.

If another iteration is not needed in operation 1850, then the currentredetected user symbols may be outputted in operation 1860. Operation1850 may determine whether another iteration is needed using any of thetechniques discussed above.

FIG. 19 is a schematic of a multi-user detection system 1905 withiterative interference cancellation, according to certain aspects of thepresent disclosure. The detection system 1905 may be at a mobile stationin a wireless communication system.

The detection system 1905 comprises a subtraction unit 1910, a symboldetector 1920, a buffer 1930, and an interference computation unit 1940.The detection system 1905 receives the received symbols z(m) anditeratively performs multi-user interference cancellation and usersymbol detection for a number of iterations.

Operation of the detection system 1905 will now be discussed for theexample of multi-user detection of user symbols {circumflex over (b)}^((k))(m) for symbol period m. The multi-user interference isinitialized to zero as follows Î ⁽⁰⁾(m)=0, where the iteration indexk=0. As a result, the subtraction unit 1910 does not initially removemulti-user interference from the received symbols z(m), and the receivedsymbols z(m) are initially inputted to the symbol detector 1920. Thesymbol detector 1920 initially detects user symbols {circumflex over(b)} ⁽⁰⁾(m) from the received symbols z(m). For example, the symboldetector 1920 may initially detect the user symbols {circumflex over(b)} ⁽⁰⁾(m) by slicing the received symbols z(m) or using otherdetection techniques including any of the detection techniques discussedin the disclosure.

The initially detected user symbols {circumflex over (b)} ⁽⁰⁾(m) forsymbol period m are temporarily stored in the buffer 1930. In addition,the symbol detector 1920 initially detects user symbols for symbolperiods m−1 and m+1, which are also temporarily stored in the buffer1930. The initially detected user symbols for symbols periods m−1, m andm+1 are then outputted from the buffer 1930 to the interferencecomputation unit 1940. The interference computation unit 1940 computesthe multi-user interference Î ⁽¹⁾ for the first iteration k=1 using theinitially detected user symbols {circumflex over (b)} ⁽⁰⁾(m−1),{circumflex over (b)} ⁽⁰⁾(m) and {circumflex over (b)} ⁽⁰⁾(m+1) (e.g.,based on Eq. (49)). To compute the multi-user interference Î ⁽¹⁾ basedon Eq. (49), the interference computation unit 1940 may receive themulti-user interference matrix A₀(m) and the shoulder matrices A⁻¹(m)and A₁(m) from a matrix computation unit, for example, the matrixcomputation unit 1310 in FIG. 13. The matrices A⁻¹(m), A₀(m) and A₁(m)are represented by [A(m)] in FIG. 19.

The subtraction unit 1910 removes (i.e., cancel out) the multi-userinterference Î ⁽¹⁾ for the first iteration from the received symbolsz(m). The received symbols {tilde over (z)} ⁽¹⁾(m) with the computedmulti-user interference Î ⁽¹⁾(m) removed are inputted to the symboldetector 1920. The symbol detector 1920 redetects the user symbols{circumflex over (b)} ⁽¹⁾(m) for the first iteration from the receivedsymbols {tilde over (z)} ⁽¹⁾(m) with the computed multi-userinterference Î ⁽¹⁾(m) removed. The redetected user symbols {circumflexover (b)} ⁽¹⁾(m) for the first iteration may then be feed back to thebuffer 1930 for a second iteration k=2.

The interference computation unit 1940 recomputes the multi-userinterference Î ⁽²⁾ for the second iteration using the redetected usersymbols from the first iteration. The subtraction unit 1910 removes themulti-user interference Î ⁽²⁾ for the second iteration from the receivedsymbols z(m). The received symbols {tilde over (z)} ⁽²⁾(m) with thecomputed multi-user interference Î ⁽²⁾(m) removed are then inputted tothe symbol detector 1920. The symbol detector 1920 redetects the usersymbols {circumflex over (b)} ⁽²⁾(m) for the second iteration from thereceived symbols {tilde over (z)} ⁽²⁾(m) with the computed multi-userinterference Î ⁽²⁾(m) removed. The redetected user symbols {circumflexover (b)} ⁽²⁾(m) from the second iteration may then be feed back to theinterference computation unit 1940 through the buffer 1930 to perform athird iteration. The detection system 1905 may perform any number ofiterations, for example, until the user symbols for consecutiveiterations converge.

In one aspect, the interference computation unit 1940 computes themulti-user interference for iteration k using the detected user symbols{circumflex over (b)} ^((k-1))(m−1), {circumflex over (b)} ^((k−1))(m),and {circumflex over (b)} ^((k-1))(m+1) from the previous iteration k−1.The detected user symbols {circumflex over (b)} ^((k-1))(m−1),{circumflex over (b)} ^((k-1))(m), and {circumflex over (b)}^((k-1))(m+1) from the previous iteration k−1 are represented by[{circumflex over (b)} ^((k-1))(m)] in FIG. 19.

Inter-Cell Cancellation

The multi-user interference cancellation was discussed above in thecontext of intra-cell interference, in which multi-user interference iscaused by multiple users in the same cell (e.g., multiple users servicedby the same base station 104). A mobile station 106 in a wirelesscommunication system may also be subject to inter-cell interferences, inwhich interference is caused by users in other cells. For example, themobile station 106 may be more susceptible to inter-cell interferencewhen located near an edge of the serving cell where interference fromneighboring cells is stronger. Referring to the example in FIG. 1, themobile station 106D being served by cell 102D may be subject tointer-cell interference from cells 102F and 102G.

In one aspect, systems and methods are provided for canceling inter-cellinterference. In this aspect, inter-cell interference from one or moreinterfering cells is computed and removed (cancelled) from the receivedchips in a mobile station 106. After the inter-cell interference isremoved from the received chips, the received chips may be processed todetect user symbols for the serving cell, e.g., using any of the systemsand methods described in the present disclosure. The serving cell is thecell corresponding to the desired user symbols and may be referred to asa target cell.

FIG. 20 is a schematic of an inter-cell interference cancellation system2005, according to certain aspects of the present disclosure. In thisaspect, the inter-cell interference cancellation system 2005 is capableof canceling inter-cell interference from received chips r(n). Thereceived chips after inter-cell interference cancellation may then beprocessed, e.g., by any one of the detections systems in FIGS. 6, 14, 15and 17 to detect user symbols for the target cell. For example, thereceived chips after inter-cell interference cancellation may first beprocessed into received symbols by a filter and a descramble anddespread unit. User symbols for the target cell may then be detectedfrom the received symbols, e.g., using the multi-user detection systemin FIG. 19, which provides multi-user interference cancellation for thetarget cell.

The inter-cell interference cancellation system 2005 comprises first,second and third cell computation units 2010 a-2010 c, respectively, andfirst, second, third and fourth subtraction blocks 2020 a-2020 d,respectively. Each of the cell computation units 2010 a-2010 c isconfigured to compute receive chips for a selected cell. In one aspect,the first cell computation unit 2010 a computes receive chips for thetarget cell and each of the second and third cell computation unitscomputes receive chips for a first and second interfering cell,respectively. Each of the cell computation units 2010 a-2010 c may beimplemented using the exemplary cell computation unit 2110 illustratedin FIG. 21, which is discussed in further detail below.

The inter-cell interference cancellation system 2005 also comprises acell ordering unit 2030. In one aspect, the cell ordering unit 2030 mayplace the interfering cells in an order and assign an interfering cellto each of the cell computation units 2010 b-2010 c based on the order.The target cell (i.e., serving cell) is assigned to cell computationunit 2010 a. For example, the cell ordering unit 2030 may receive pilotsignals from multiple interfering cells (e.g., from antenna 220 andreceiver 200), measure the signal strengths of the received pilotsignals, and order the interfering cells based on their relative signalstrengths at the receiver. For example, the interfering cells may beordered in order of decreasing signal strength. Thus, the interferingcells are assigned to the second and third cell computation units 2010 band 2010 c in order of decreasing signal strength.

In operation, the first cell computation unit 2010 a receives thereceived chips r(n), and computes and outputs the receive chips x₁(n)for the target cell. The first subtraction block 2020 a removes thecomputed receive chips x₁(n) for the target cell from the received chipsr(n). The output of the first subtraction block 2020 a is inputted tothe second cell computation unit 2010 b. Thus, the computed receivechips x₁(n) for the target cell are removed from the received chips r(n)prior to the second cell computation unit 2010 b. This removes thecontribution of the target cell from the received chips r(n) resultingin more reliable computations of the receive chips for the interferingcells.

The second cell computation unit 2010 b computes and outputs the receivechips x₂(n) for a first interfering cell (e.g., interfering cell withhighest power). The second subtraction unit 2020 b removes the receivechips x₂(n) for the first interfering cell from the output of the firstsubtraction unit 2020 a. The output of the second subtraction block 2020b is inputted to the third cell computation unit 2010 c. Thus, thereceive chips x₁(n) and x₂(n) for the target cell and the firstinterfering cell, respectively, are removed from the received chips r(n)prior to the third cell computation unit 2010 c. This removes thecontribution of the target cell and the first interference cell from thereceived chip resulting in more reliable computation of the receivechips for the second interfering cell. The third cell computation unit2010 c computes and outputs the receive chips x₃(n) for the secondinterfering cell.

The third and fourth subtraction units 2020 c and 2020 d remove thecomputed receive chips x₂(n) and x₃(n) for the first and secondinterfering cells, respectively, from the received chips r(n). As aresult, inter-cell interference from the interfering cells is canceledfrom the received chips r(n). The received chips after the inter-cellcancellation (i.e., r(n)-x₂(n)-x₃(n)) may be processed into receivedsymbols for the target cell to detect user symbols for the target cell.The inter-cell interference cancellation system in FIG. 20 may performinter-cell cancellation for just one interfering cell by omitting thethird cell computation unit 2010 b. Further, the inter-cell interferencecancellation system may be adapted to perform inter-cell cancellationfor three or more interfering cells by adding additional cellcomputation units. Although the cell computation units 2010 a-2010 c areshown separately in FIG. 19 for ease of illustration, their operationsmay be performed by the same cell computation unit. For example, thesame cell computation unit may be used to sequentially compute thereceive chips for the different cells.

FIG. 21 is a schematic of a cell computation unit 2110, according tocertain aspects of the present disclosure. The cell computation unit2110 receives the received chips r(n) and outputs the receive chips x(n)for a selected or working cell. The cell computation unit 2110 may alsoreceive the received chips r(n) with previously computed receive chipsfor other cells removed. The cell computation unit 2110 comprises afilter 2120, a descramble and despread unit 2130, and a detection unit2140. The filter 2120 filters the received chips and may comprise anequalizer, and/or a channel-matched filter. For the example in which thefilter 2120 comprises an equalizer, the equalizer may be implementedusing a Frequency Domain Equalizer (FDE). The filter 2120 may filter thereceived chips based on a channel estimate for the selected cell, e.g.,using a pilot signal from the selected cell.

After filtering, the descramble and despread unit 2130 descrambles thereceived chips using a descrambling code for the selected cell. Thedescramble and despread unit 2130 then despreads the descrambled signalusing a set of despreading codes for the selected cell, where eachdespreading code may correspond to a different user of the selectedcell. The descramble and despread unit 2130 may store a plurality ofdescrambling codes for different cells in memory and retrieve thedescrambling code corresponding to the selected cell. The descramble anddespread unit 2130 outputs a set of received symbols z(m) for theselected cell. The detection unit 2140 then detects user symbols b(m)from the received symbols z(m) for the selected cell. The detection unit2140 may use slicing or other detection techniques to detect the usersymbols b(m) for the selected cell. The detected user symbols b(m)provide an estimate of the user symbols at the transmitter side (e.g.,base station) of the selected cell.

The cell computation unit 2110 further comprises a gain unit 2150, aspread and scramble unit 2160 and a chip computation unit 2170. The gainunit 2150 and spread and scramble unit 2060 process the user symbolsb(m) in a manner similar to the transmitter side (e.g., base station) ofthe selected cell to estimate the chips transmitted from the transmitterside of the selected cell. The gain unit 2150 applies a set of gains tothe user symbols b(m). For example, the gain unit 2150 may apply adifferent gain to each of the user symbols b(m). Examples of methods forestimating the gains are discussed below.

The spread and scramble unit 2160 then spreads the user symbols using aset of spreading codes, combines the resulting spread signals, andscrambles the combined spread signal to generate transmit chips t(n).The spread and scramble unit 2160 may use the same spreading andscrambling codes used at the transmitter side of the selected cell. Thescramble and spread unit 2160 may store a plurality of scrambling codesfor different cells in memory and retrieve the scrambling codecorresponding to the selected cell. Thus, the cell computation unit 2110may duplicate processes performed at the transmitter side of theselected cell to compute the transmit chips t(n).

The cell computation unit 2170 then processes the transmit chips t(n)for the selected cell to compute the receive chips x(n) for the selectedcell. In one aspect, the cell computation unit 2170 computes the receivechips x(n) for the selected cell by convolving the transmit chips t(n)with a channel estimate h(n) for the selected cell. The channel estimateh(n) for the selected cell may be estimated, e.g., from a pilot signalreceived from a base station of the selected cell using pilot-basedchannel estimation.

FIG. 22 a is a flow diagram illustrating a process of computing receivechips for a selected cell according to certain aspects of the presentdisclosure. At operation 2205, user symbols for a selected cell aredetected. For example, the user symbols for the selected cell may bedetected from the received chips by performing the operations of thefilter 2120, descramble and despread unit 2130 and detection unit 2140in FIG. 21.

From operation 2205, the process continues to operation 2210 wheretransmit chips for the selected cell are estimated using the detecteduser symbols. For example, the transmit chips may be estimated byprocessing the detected user symbols in a similar manner to thetransmitter side of the selected cell.

From operation 2210, the process continues to operation 2215 where thereceive chips for the selected cell are computed. For example, thereceive chips for the selected cell may be computed by convolving theestimated transmit chips with a channel estimate for the selected cell.

FIG. 22 b is a flow diagram illustrating a process of inter-cellinterference cancellation, according to certain aspects of the presentdisclosure. At operation 2220, chips are received at a receiver. Thereceived chips may be denoted r(n) and include contributions from thetarget cell and one or more interfering cells. The received chips r(n)may be the chips received by the receiver 200 of a mobile station 106.

From operation 2220, the process continues to operation 2225 wheremultiple interfering cells are ordered. For example, the multipleinterfering cells may be ordered based on their relative signalstrengths at the receiver.

From operation 2225, the process continues to operation 2230 wherereceive chips for each of the interfering cells are successivelycomputed based on the order of the interfering cells. For example, thereceive chip for a first inferring cell may be computed first from thereceived chips r(n) with the receive chips for the target cell removed.The receive chips for a second interfering cell may then be computedfrom the received chips r(n) with the receive chips for the target celland first interfering cell removed (cancelled out). The receive chipsfor each of the subsequent interfering cells may be computed from thereceived chips r(n) with the receive chips for the target cell and thepreviously computed interfering cells removed. This removes thecontribution of the target cell and the previously computed interferingcells from the received chip resulting in more reliable computations ofthe receive chips for the subsequent interfering cells. The receivechips for interfering cells with the higher signal strengths arecomputed first since they are more reliable than interfering cells withweaker signal strengths.

From operation 2230, the process continues to operation 2235 where thecomputed receive chips for the interfering cells are removed from thereceived chips r(n). After the inter-cell interference is cancelled fromthe received chips in operation 2235, the received chips may beprocessed into received symbols to detect user symbols for the targetcell using any detection techniques including any of the detectionstechniques discussed in the present disclosure.

FIG. 22 c is a flow diagram illustrating a process of inter-cellinterference cancellation and multi-user detection, according to certainaspects of the present disclosure. At operation 2250, receive chips foran interfering cell are computed, for example, using the processillustrated in FIG. 22 a. At operation 2255, the computed received chipsfor the interfering cell are removed (cancelled) from received chips. Atoperation 2260, the received chips with the receive chips for theinterfering cell removed are processed into received symbols. This maybe done, for example, by filtering, descrambling and despreading thereceived chips with the receive chips for the interfering cell removed.At operation 2265, user symbols for the target cell are detected basedon the received symbols. This may be done, for example, by slicing thereceived symbols.

FIG. 22 d is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 22 d includes a module 2270 forcomputing receive chips for an interfering cell and a module 2275 forremoving the computed receive chips for the interfering cell from thereceived chips. The mobile station 106 further includes a module 1280for processing the received chips with the receive chips for theinterfering cell removed (cancelled out) into received symbols and amodule 1285 for detecting user symbols for the target cell based on thereceived symbols.

Data-Aided Channel Estimation

In one aspect, user symbols detected from received symbols are used toenhance channel estimation. This may be referred to as data-aidedchannel estimation. Before discussing data-aided channel estimation, itmay be instructive to first discuss an example of pilot-based channelestimation.

In pilot-based channel estimation, a pilot signal is transmitted fromthe transmitter side (e.g., base station 104) to the receiver (e.g.,mobile station 106). The pilot signal is a signal that is known a prioriby the receiver, and used by the receiver to estimate the channel hbetween the transmission side and the receiver. For an example of CDMA,the pilot signal may comprise a known sequence of symbols.

For an example of a single-user communication system, the transmittedchips t(n) at the transmitter side may be expressed as:t(n)=b ₁(n)g ₁ w ₁(n)p(n)+b ₂(n)g ₂ w ₂(n)p(n)  (52)where b₁(n) is the symbol of a pilot signal and b₂(n) is a user symbolfor a user. The pilot symbol may also be denoted by the subscript zero.In Eq. (52), the pilot symbol b₁(m) is expressed in terms of the chipindex n as b₁(n), in which b₁(n) over a span of N chips corresponds toone symbol (where N is the spreading factor). Similarly, the user symbolb₂(m) is expressed in terms of the chip index n as b₂(n). Eq. (52) canbe applied to multi-user communication systems by adding additional usersymbols in Eq. (52) for multiple users including their correspondinggains and spreading codes.

The received chips r(n) at the receiver can be expressed as theconvolution of the channel h and transmitted chips t(n) in terms ofdiscrete convolution and noise v(n) as:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d = 0}^{D}{{h(d)}{t( {n - d} )}}} + {v(n)}}} & (53)\end{matrix}$where D is the bound of the discrete convolution.Plugging the expression for t(n) in Eq. (52) into Eq. (53) results in:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d = 0}^{D}{{h(d)}{b_{1}( {n - d} )}g_{1}{w_{1}( {n - d} )}{p( {n - d} )}}} + {\sum\limits_{d = 0}^{D}{{h(d)}{b_{2}( {n - d} )}g_{2}{w_{2}( {n - d} )}{p( {n - d} )}}} + {v(n)}}} & (54)\end{matrix}$In Eq. (54), the pilot symbol b₁(n) is known a priori by the receiver,while the user b₂(n) is not. Since the user symbol b₂(n) is not known apriori by the receiver, the second summation term in Eq. (54) and thenoise v(n) may be lumped together as an unknown v′(n). As a result, thereceived chips r(n) may be expressed as:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d = 0}^{\; D}{{h(d)}{b_{1}( {n - d} )}g_{1}{w_{1}( {n - d} )}{p( {n - d} )}}} + {v^{\prime}(n)}}} & (55)\end{matrix}$where the unknown is given by:

$\begin{matrix}{{v^{\prime}(n)} = {{\sum\limits_{d = 0}^{D}{{h(d)}{b_{2}( {n - d} )}g_{2}{w_{2}( {n - d} )}{p( {n - d} )}}} + {v(n)}}} & (56)\end{matrix}$At the receiver, the received chips r(n), pilot symbol b₁(n), spreadingcode w₁(n), and scrambling code p(n) are known. Thus, Eq. (55) can beused in pilot-based channel estimation to estimate the channel h bysolving for h(d) using known techniques The pilot symbol b₁(n) may be aconstant, in which case the pilot symbol may be represented as simply b₁in Eq. (55). Eq. (55) may be extended to a multi-user communicationsystem, in which the user symbols for the multi-users may be lumped intothe unknown v′(n) since they are not known a priori by the receiver.

In the example of pilot-based channel estimation discussed above, thereceiver uses the pilot signal as a reference signal that is known apriori by the receiver to estimate the channel h from the received chipsr(n). A drawback of this approach is that the power of the unknownsignal v′(n) may be high, which reduces the accuracy of the estimatedchannel h.

In one aspect, user symbols detected from received symbols are used tocreate virtual pilot signals, which are used to enhance channelestimation. In this aspect, the virtual pilot signals are created fromthe detected user symbols by treating the detected user symbols as knownsymbols for purposes of channel estimation. The virtual pilots signalsare not actual pilot signals transmitted between the transmitter side(e.g., base station 104) and receiver side (e.g., mobile station 106).

The user symbols may be detected using any detection technique includingany of the detection techniques discussed in the disclosure. In theexample in Eq. (54), user symbol b₂(n) may be replaced by the detecteduser symbol {circumflex over (b)}₂(m) (expressed in terms of chip indexn as {circumflex over (b)}₂(n)) to rewrite Eq. (55) as:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d}^{\;}{{h(d)}( {{{b_{1}( {n - d} )}g_{1}{w_{1}( {n - d} )}} + {{{\hat{b}}_{2}( {n - d} )}g_{2}{w_{2}( {n - d} )}}} ){p( {n - d} )}}} + {v^{\prime}(n)}}} & (57)\end{matrix}$where the unknown is given by:

$\begin{matrix}{{v^{\prime}(n)} = {{\sum\limits_{d = 0}^{\; D}{{h(d)}( {{{\hat{b}}_{2}( {n - d} )} - {b_{2}( {n - d} )}} )g_{2}{w_{2}( {n - d} )}{p( {n - d} )}}} + {v(n)}}} & (58)\end{matrix}$Thus, the detected user symbol {circumflex over (b)}₂(n) may be used tocreate a virtual pilot signal in Eq. (57) to provide enhanced estimationof the channel h. As discussed above, a virtual pilot signal is createdby treating the detected user symbol {circumflex over (b)}₂(n) as aknown symbol for purposes of channel estimation in Eq. (57). If thedetected user symbol {circumflex over (b)}₂(n) is close to the actualuser symbol b₂(n), then the power of the unknown signal v′(n) may begreatly reduced in Eq. (57), which enhances the channel estimation. Eq.(57) may be extended to multiple users by using the detected usersymbols for the multiple users to generate multiple virtual pilotsignals.

FIG. 23 is a schematic of a channel estimation system 2305, according tocertain aspects of the present disclosure. The channel estimation system2305 may be at a receiver in a wireless communication system. Thechannel estimation system 2305 comprises a filter unit 2310 forfiltering received chips r(n), a descramble and despread unit 2320, anda detection unit 2330. The filter unit 2310 may comprise an equalizer,and/or a channel-matched filter (CFM).

The descramble and despread unit 2320 comprises a descramble mixer 2315,a plurality of despread mixers 2322 and a plurality of correspondingsummation blocks 2325. The descramble mixer 2315 mixes the filteredreceived chips y^(e)(n) with a descrambling code p*(n) to descramble thefiltered received chips y(n). The superscript “e” indicates that thefiltered chips are used to estimate the channel h.

The despread mixers 2322 then mix the descrambled signal with a set ofdespreading codes w₁*(n) to w_(Nu)*(n). The despread signal from eachdespread mixer 2322 is inputted to the respective summation block 2325,which accumulates the despread signal over a period of one symbol toproduce a received symbol for the corresponding user. The receivedsymbols are inputted to the detection unit 2330, which detects the usersymbols {circumflex over (b)}₁ ^(e)(m) to {circumflex over (b)}_(Nu)^(e)(m) from the received symbols. The detection unit 2330 may use anydetection technique including slicing or any other detection techniquediscussed in the disclosure. If one of the user symbols corresponds to aknown pilot symbol, then the known pilot symbol may be outputted (e.g.,from memory) as one of the user symbols {circumflex over (b)}₁ ^(e)(m)to {circumflex over (b)}_(Nu) ^(e)(m).

The channel estimation system 2305 further comprises a gain unit 2335, aspread and scramble unit 2340, and a channel computation unit 2350. Thegain unit 2335 comprises a plurality of gain mixers 2337 that apply aset of gains g₁ to g_(Nu) to the detected user symbols {circumflex over(b)}₁ ^(e)(m) to {circumflex over (b)}_(Nu) ^(e)(m), respectively. Thespread and scramble unit 2340 comprises a plurality of spread mixers2342, a combiner 2343, and a scramble mixer 2345. The spread mixers 2322mix the gain scaled user symbols with a set of spreading codes w₁(n) tow_(Nu)(n), the combiner 2343 combines the spread signals, and thescramble mixer 2345 mixes the combined signal with scrambling code p(n).The spreading codes and scrambling code may be the same as those used inthe transmitter side so that the output {circumflex over (t)}(n) of thespread and scramble unit 2340 provides an estimate of the transmittedchips at the transmitter side.

The output of the spread and scramble unit 2340 may be given as:{circumflex over (t)}(n)=({circumflex over (b)} ₁ ^(e)(n)g ₁ w ₁(n)+ . .. +{circumflex over (b)} _(Nu) ^(e)(n)g ₂ w ₂(n))p(n)  (59)where the detected user symbols are expressed in terms of the chip indexn. In one aspect, one of the symbols {circumflex over (b)}^(e) in Eq.(59) may be a known pilot symbol while the other symbols are detecteduser symbols. Thus, the estimated transmitted chips {circumflex over(t)}(n) may be computed based on the detected user symbols and a knownpilot symbol by spreading and scrambling the detected user symbols andpilot symbol to obtain {circumflex over (t)}(n). Because {circumflexover (t)}(n) provides an estimate of the transmitted chips, the receivedchips r(n) may be represented by the convolution of {circumflex over(t)}(n) with the channel h as:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d = 0}^{D}{{h(d)}{\hat{t}( {n - d} )}}} + {v^{\prime}(n)}}} & (60)\end{matrix}$Plugging in the expression for {circumflex over (t)}(n) in Eq. (59) intoEq. (60) results in:

$\begin{matrix}{{r(n)} = {{\sum\limits_{d = 0}^{D}{{h(d)}( {{{{\hat{b}}_{1}^{e}( {n - d} )}g_{1}{w_{1}( {n - d} )}} + \ldots + {{{\hat{b}}_{Nu}^{e}( {n - d} )}g_{2}{w_{2}( {n - d} )}}} ){p( {n - d} )}}} + {v^{\prime}(n)}}} & (61)\end{matrix}$The channel estimation unit 2050 may then use the input {circumflex over(t)}(n) from the spread and scramble unit 2040, the received chips r(n)and Eq. (60) to estimate the channel h. In this aspect, the detecteduser symbols {circumflex over (b)}₁ ^(e)(m) to {circumflex over(b)}_(Nu) ^(e)(m) are treated as known symbols in Eq. (61) for purposesof channel estimation. This reduces the power of the unknown signalv′(n), which enhances channel estimation.

In one aspect, a scaled estimate of the channel ĥ(l) can be obtained bycomputing the cross-correlation of the received chips r(n) and theestimated transmitted chips {circumflex over (t)}(n) over a chip lengthof A as follows:

$\begin{matrix}{{\hat{h}(l)} = \frac{\sum\limits_{n = 1}^{A}{{r(n)}{{\hat{t}}^{*}( {n - l} )}}}{A}} & (62)\end{matrix}$where ĥ(l) is the scaled estimate of the channel at chip l.

The channel computation unit 2350 may provide the channel estimate tothe matrix computation unit 1310 in FIG. 13 to compute the matrices A⁻¹,A₀, A₊₁ or other systems. The data-aided channel estimation provides amore accurate channel estimation h resulting in more accurate computedmatrices A⁻¹, A₀, A₊₁. Further, the channel computation unit 2350 mayprovide the channel estimate to a filter to compute the filtercoefficients for the filter. For example, the data-aided channelestimate may be provided to the front-end filters 210, 1410, 1510 or anyother filter. The filter 2310 in the channel estimation system 2305 mayuse a channel estimate derived from pilot-based channel estimation sincedata-aided channel estimation is performed after the filter 2310.

In one aspect, the gain unit 2335 may apply the same or different gainsto the detected user symbols {circumflex over (b)}₁ ^(e)(m) to{circumflex over (b)}_(Nu) ^(e)(m) at mixers 2337 based on estimates ofthe corresponding gains at the transmission side. In one aspect, thechannel computation unit 2350 may compare the gains to a gain thresholdto eliminate user symbols with low gains, which may be less reliable inestimating the channel. In this aspect, gains above the gain thresholdare applied to their respective user symbols {circumflex over (b)}₁^(e)(m) to {circumflex over (b)}_(Nu) ^(e)(m) and used to estimate thechannel. Gains below the gain threshold and their respective usersymbols {circumflex over (b)}₁ ^(e)(m) to {circumflex over (b)}_(Nu)^(e)(m) are not used to estimate the channel. The gain unit may alsoapply uniform gains to the user symbols.

A process for estimating the gains for the different user symbols willnow be discussed, according to one aspect of the disclosure. In thisaspect, the gain for each user symbol or code channel is estimated bydifferentiating received pilot symbols for consecutive symbol periods mand m+1, which may be given as follows:Δz ₀(m)=z ₀(m)−z ₀(m+1)  (63)where the zero subscript refers to a pilot symbol. Assuming thattransmitted pilot symbols are the same for each symbol period,differences between the received pilot symbols are due to noise. Thus,the pilot differentiation provides an estimate of noise at the receiver.Noise power {circumflex over (σ)}²(m) may be estimated based on thedifferentiation of the received pilot symbols as follows:

$\begin{matrix}{{\frac{{{\Delta\;{z_{0}(m)}}}^{2}}{2}} + {( {1 - \alpha} ){{\hat{\sigma}}^{2}( {m - 1} )}}} & (64)\end{matrix}$Equation (64) may be implemented using an Infinite Impulse Response(IIR) filter with one tap, where α is a filter coefficient and{circumflex over (σ)}²(m−1) is the estimate of the noise power from theprevious symbol period m−1. The noise power {circumflex over (σ)}²(m)estimate may be applied to each user or code channel of the cell forwhich {circumflex over (σ)}²(m) is estimated. The power {circumflex over(P)}_(i)(m) code channel i may be given as follows:

$\begin{matrix}{{{\hat{P}}_{i}(m)} = {{\alpha\frac{{{\Delta\;{z_{i}(m)}}}^{2}}{2}} + {( {1 - \alpha} ){{\hat{P}}_{i}( {m - 1} )}}}} & (65)\end{matrix}$where z_(i)(m) is the received symbol for code channel i, whichcorresponds to one of the users. Equation (65) may be implemented usingan IIR filter with one tap, where α is a filter coefficient and{circumflex over (P)}_(i)(m−1) is the estimate of the power from theprevious symbol period m−1. The gain ĝ_(i)(m) for a particular codechannel or user may then be estimated as follows:

$\begin{matrix}{{{\hat{g}}_{i}(m)} = \sqrt{{{\hat{P}}_{i}(m)} - {{\hat{\sigma}}^{2}(m)}}} & (66)\end{matrix}$The initial value for the noise power may be zero. The gain unit 2335may compute the set of gains g_(l) to g_(Nu) applied to the respectivedetected user symbols {circumflex over (b)}_(l) ^(e)(m) to {circumflexover (b)}_(Nu) ^(e)(m) based on Eq. (66). The above gain estimationtechnique may also be used to estimate gains for the gain matrix G.

In one aspect, the filter 2310 may use a channel estimate h provided bypilot-based channel estimation before the data-aided channel estimationis performed. In this aspect, the channel computation unit 2350 may usethe output of the filter 2310 y_(e)(n) to estimate the total filter c(n)as follows:

$\begin{matrix}{{y_{e}(n)} = {{\sum\limits_{d = 0}^{D}{{c(d)}{\hat{t}( {n - d} )}}} + {v^{\prime}(n)}}} & (67)\end{matrix}$The above equation is similar to Eq. (60), in which the filter outputy_(e)(n) is given by the convolution of {circumflex over (t)}(n) withthe total filter c(n). The channel computation unit 2350 may use theoutput {circumflex over (t)}(n) from the spread and scramble unit 2340,the filter output y_(e)(n) and Eq. (67) to estimate the total filterc(n). The total filter c(n) may also be estimated by computing thecross-correlation of the filter output y_(e)(n) and the estimatedtransmitted chips {circumflex over (t)}(n) similar to equation (62), inwhich the received chips r(n) in the cross-correlation are replaced withthe filtered chips y_(e)(n).

The filter 2310 may filter the received r(n) based on an initial channelestimate h using pilot-based channel estimation or the data-aidedchannel estimate delayed by one symbol period. Further, the channelcomputation unit 2350 may provide the estimated total filter c(n) to amatrix computation unit (e.g., matrix computation unit 1310), in whichcase the matrix computation unit does not have to separately compute thetotal filter c(n) using a channel estimate h and filter f parameters. Inthis aspect, the channel computation unit 2350 may receive the filteredoutput y_(e)(n) from the filter 2310 to estimate the total filter c(n).

FIG. 24 a is a flow diagram illustrating a process of channel estimationat a receiver, according to certain aspects of the present disclosure.At operation 2400, received chips are processed into received symbols.For example, the received chips may be filtered and then descrambled anddespreaded into received symbols.

From operation 2400, the process continues to operation 2410 where usersymbols are detected from the received symbols. For example, the usersymbols may be detected by slicing the received symbols. Other detectiontechniques may also be used.

From operation 2410, the process continues to operation 2415 where thetransmitted chips are estimated based on the detected user symbols. Thismay be done, for example, by spreading and scrambling the detected usersymbols to estimate the chips transmitted from the transmitter side.From operation 2415, the process continues to operation 2220 where achannel is estimated using the received chips and the estimatedtransmitted chips (e.g., based on Eq. (60)).

FIG. 24 b is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 24 b includes a module 2450 forprocessing received chips into received symbols and a module 2455 fordetecting user symbols from the received symbols. The mobile station 106further includes a module 2460 for estimating transmitted chips based onthe detected user symbols and a module 2465 for estimating a channelbased on the received chips and the estimated transmitted chips.

FIG. 24 c is a flow diagram illustrating a process for estimating atotal filter c(n) representing a convolution of a channel h and a filterf, according to certain aspects of the present disclosure. At operation2470, received chips are filtered by the filter at a receiver.

From operation 2470, the process continues to operation 2475 where thefiltered chips are processed into received symbols. For example, thefiltered chips may be descrambled and despreaded into received symbols.

From operation 2475, the process continues to operation 2480 where usersymbols are detected from the received symbols. For example, the usersymbols may be detected by slicing the received symbols. Other detectiontechniques may also be used.

From operation 2480, the process continues to operation 2485 where thetotal filter c(n) is estimated using the filtered chips and the detecteduser symbols (e.g., based on Eq. (67)). For example, the detected usersymbols may be spread and scrambled to estimate the transmitted chips atthe transmitter side. Also, the detected user symbols may be usedtogether with one or more known pilot symbols to estimate thetransmitted chips. The estimated transmitted chips and the filteredchips may then be used to estimate the total filter c(n) (e.g., based onEq. (67)).

Efficient Detection of Quadrature Amplitude Modulated (QAM) Symbols

Efficient systems and methods for detection of QAM symbols are provided,according to certain aspects of the present disclosure. In one aspect, aQAM symbol is detected by decomposing the corresponding QAMconstellation into multiple sub-constellations (e.g., QPSKconstellations), detecting components of the QAM symbol corresponding tothe sub-constellations, and combining the detected components to detectthe QAM symbol. The QAM may be 16 QAM, 64 QAM or any other M-ary QAM.Before discussing the detection of QAM symbols using constellationdecomposition, it may be instructive to discuss examples of QAM.

FIG. 25 a is a diagram of an exemplary 16 QAM constellation. The 16 QAMconstellation comprises 16 constellation points 2510 representing 16different complex values for a 16 QAM symbol. The 16 QAM constellationis divided into four quadrants 2550 a-2550 d, each quadrant having fourof the 16 constellation points 2510. Each constellation point 2510 hasIn-phase (I) and Quadrature (Q) components, which may correspond to realand imaginary parts of a corresponding symbol, respectively. A 16 QAMsymbol carries four bits of information.

FIG. 25 b is a diagram of an exemplary Quadrature Phase Shift Keying(QPSK) constellation. The QPSK constellation comprises fourconstellation points 2512 representing four different values for a QPSKsymbol. The QPSK constellation is divided into four quadrants 2552a-2552 d, each quadrant having one of the constellation points 2512. AQPSK symbol carries two bits of information.

FIG. 26 is a diagram of a 16 QAM constellation decomposed into twosub-constellations according to one aspect of the disclosure. A firstsub-constellation 2620 comprises four constellation points 2610 a-2610 dcentered at the origin of the 16 QAM constellation. The firstsub-constellation 2620 has one constellation point 2610 a-2610 d in eachquadrant 2450 a-2450 d, respectively, of the 16 QAM constellation. Asecond sub-constellation 2630 comprises four constellation points 2650a-2650 d centered at one of the constellation points 2610 a-2610 d ofthe first sub-constellation 2620. The constellation point 2610 a-2610 dat which the second sub-constellation 2630 is centered depends on thequadrant 2450 a-2450 d of the 16 QAM constellation corresponding to adesired QAM symbol. In the example shown in FIG. 26, the desired QAMsymbol corresponds to quadrant 2450 a of the 16 QAM constellation. Inthis aspect, the first sub-constellation 2620 may be represented by aQPSK constellation, in which the amplitudes of the QPSK constellationpoints are scaled by a factor of 2, and the second sub-constellation2630 may be represented by a QPSK constellation.

In one aspect, a 16 QAM symbol can be represented as a sum of componentsb¹ and b² corresponding the first and second sub-constellations,respectively, as follows:b=b ¹ +b ²  Eq. (68)In this aspect, a 16 QAM symbol may be detected by detecting thecomponents b¹ and b² corresponding to the first and secondsub-constellations, respectively, and combining the components b¹ and b²to detect the 16 QAM symbol.

QAM constellation decomposition may be applied to other QAMconstellations besides a 16-QAM constellation. For example, a 64 QAMconstellation may be decomposed into three sub-constellations (e.g.,QPSK constellations) by extending the methods used to decompose the 16QAM constellation to the 64 QAM constellation. In this example, a 64-QAMsymbol may be detected by combining three components of the 64-QAMsymbol corresponding to the three sub-constellations.

FIG. 27 is a schematic of a multi-user 16 QAM detection system 2705,according to certain aspects of the present disclosure. The detectionsystem may be at a receiver in a wireless communication system. Thedetection system 2705 comprises a first detection unit 2710, a scaler2720, a buffer 2730, a reconstruction unit 2740, a subtraction unit2750, and a second detection unit 2760.

In one aspect, the first detection unit 2710 may comprise a QPSK slicerconfigured to receive symbols z(m) and detect a QPSK symbol for eachreceived symbol. The first detection unit 2710 may detect a QPSK symbolfor a received symbol based on the signs of the real and imaginary partsof the received symbol. For example, if the signs of the real andimaginary parts of a received symbol are both positive, then the firstdetection unit 2710 may detect a QPSK symbol corresponding toconstellation point 2510 in quadrant 2552 a of the QPSK constellationfor the received symbol. The first detection unit 2710 may also useminimum distance detection which determines the constellation pointhaving the minimum distance to the received symbol. The QPSK symbol foreach received symbol is then scaled by the scaler 2720 to obtain thefirst detected component {circumflex over (b)} ¹(m) of the 16-QAM usersymbol for the received symbol. The scaler 2720 does this by scaling aQPSK symbol to correspond to one of the constellation points 2610 a-2610d in the first sub-constellation 2620.

The buffer 2730 stores the first detected components {circumflex over(b)} ¹(m) for the received symbols z(m) over multiple symbols periods.In one aspect, the buffer stores the first detected components{circumflex over (b)} ¹(m−1), {circumflex over (b)} ¹(m), {circumflexover (b)} ¹(m+1) for the symbol periods m−1, m, and m+1, respectively.The first detected components {circumflex over (b)} ¹(m−1), {circumflexover (b)} ¹(m), {circumflex over (b)} ¹(m+1) are represented by[{circumflex over (b)} ¹(m)] in FIG. 27. The reconstruction unit 2740then reconstructs the portion Î ^(SC)(m) of the received symbols z(m)contributed by the first detected components {circumflex over (b)} ¹(m)of the respective user symbols {circumflex over (b)}(m) and bymulti-user interference due to the first components {circumflex over(b)} ¹(m−1), {circumflex over (b)} ¹(m), {circumflex over (b)} ¹(m+1)for the symbol periods m−1, m, and m+1, respectively. The reconstructionunit 2470 may compute Î ^(SC)(m) as follows:

$\begin{matrix}{{{\underset{\_}{\hat{I}}}^{SC}(m)} = {\sum\limits_{{l = {- 1}},0,1}^{\; 1}{{A_{l}(m)}G{{\underset{\_}{\hat{b}}}^{1}( {m + l} )}}}} & (69)\end{matrix}$where G is the diagonal gain matrix, and A_(l) represents the matricesA⁻¹, A₀, A₊₁ for l=−1, 0 and 1, respectively. The matrices A⁻¹, A₀, A₊₁are represented by [A(m)] in FIG. 27.

The subtraction unit 2750 removes Î ^(SC)(m) from the received symbolsz(m) as follows:z ^(SC)(m)= z (m)− Î ^(SC)(m)  (70)where z ^(SC)(m) are the received symbols z(m) with Î ^(SC)(m) removed.The operation in Eq. (70) removes the portion of the received symbolsz(m) contributed by the first detected components {circumflex over (b)}¹(m) of the respective user symbols {circumflex over (b)}(m). Thisenables the second components {circumflex over (b)} ²(m) of the usersymbols {circumflex over (b)}(m) to be detected by QPSK slicing z^(SC)(m). The operation in Eq. (70) also removes multi-user interferencedue to the first components {circumflex over (b)} ¹(m−1), {circumflexover (b)} ¹(m), {circumflex over (b)} ¹(m+1) for the symbols periodsm−1, m, and m+1, respectively. This provides multi-user interferencecancellation resulting in more accurate detection of the secondcomponents {circumflex over (b)} ²(m).

The second detection unit 2760 then detects the second components{circumflex over (b)} ²(m) of the desired user symbols {circumflex over(b)} ²(m) from z ^(SC)(m). The second detection unit 2760 may do this byQPSK slicing z ^(SC)(m). The combiner 2770 then combines the firstcomponents {circumflex over (b)} ¹(m) with the respective secondcomponents {circumflex over (b)} ²(m) to obtain the detected usersymbols {circumflex over (b)}(m) for the received symbols z(m).

Thus, the multi-user 16 QAM detection system 2705 in FIG. 27 decomposesa received 16 QAM symbol into two components where each component isdetected using a sub-constellation (e.g., QPSK constellation) andmulti-user interference from the first components is removed prior todetection of the second component for enhanced detection.

FIG. 28 a is a flow diagram illustrating a process of multi-usersub-constellation detection, according to certain aspects of the presentdisclosure. At operation 2800, first components of user symbols aredetected from received symbols. The first components of the user symbolsmay correspond to the first sub-constellation 2620 of a 16-QAMconstellation for an example of 16-QAM detection.

From operation 2800, the process continues to operation 2810 where aportion of the received symbols contributed by the first components ofthe user symbols and multi-user interference due to the first componentsof the user symbols is computed. This portion of the received symbolsmay be computed, for example, based on Eq. (69).

From operation 2810, the process continues to operation 2820 wheresecond components of the user symbols are detected from the receivedsymbols with the computed portion removed.

From operation 2820, the process continues to operation 2830 where thedetected first components of the user symbols are combined with therespective second components of the user symbols to detect the usersymbols.

FIG. 28 b is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 28 b includes a module 2850 forprocessing received chips into received symbols and a module 2855 fordetecting first components of the user symbols from the receivedsymbols. The mobile station 106 further includes a module 2860 computinga portion of the received symbols due to the first components of theuser symbols and a module 2865 for detecting second components of theuser symbols based on the received symbols with the computed portionremoved. The mobile station 106 further includes a module 2870 fordetecting the user symbols by combining the first components of the usersymbols with the respective second components of the user symbols.

FIG. 29 is a schematic of a multi-user QAM detection system 2905 withiterative interference cancellation, according to certain aspects of thepresent disclosure. The detection system 2905 may be at a receiver in awireless communication system. The detection system 2905 comprises asubtraction unit 2910, a redetection unit 2920, a buffer 2930, and aninterference computation unit 2940.

In one aspect, the interference computation unit 2940 uses user symbols{circumflex over (b)}(m) detected from a sub-constellation detectionsystem (e.g., the sub-constellation detection system 2705 in FIG. 27) asinitially detected user symbols to compute multi-user interference for afirst iteration. For example, the interference computation unit 2940 maycompute the multi-user interference for symbol period m based on Eq.(49) using the detected user symbols {circumflex over (b)}(m−1),{circumflex over (b)}(m), {circumflex over (b)}(m+1) for symbol periodsm−1, m, and m+1, respectively, from the sub-constellation detectionsystem. In FIG. 29, the iteration index k of the detected user symbols{circumflex over (b)} ⁽⁰⁾(m) from the sub-constellation detection systemis zero since they are used for the initially detected user symbols.

The subtraction unit 2910 removes (subtracts) the computed multi-userinterference Î ⁽¹⁾(m) for the first iteration (k=1) from the receivedsymbols z(m). The redetection unit 2920 then redetects the user symbolsfrom the received symbols {tilde over (z)} ⁽¹⁾(m) with the computedinterference removed.

In one aspect, the redetection unit 2920 performs single-user maximumlikelihood detection (MLD) on the received symbols {tilde over (z)}⁽¹⁾(m) with the computed interference removed as follows:

$\begin{matrix}{{{\hat{b}}_{i}^{(k)}(m)} = {\begin{matrix}{\arg\;\min} \\b\end{matrix}{{{{\overset{\sim}{Z}}_{i}^{(k)}(m)} - {\lbrack {A_{0}(m)} \rbrack_{i,i}g_{i}b}}}^{2}}} & (71)\end{matrix}$where k=1 for the first iteration, i is a user index, [A₀(m)]_(i,i) isthe coefficient of matrix A₀ relating the received symbol for user i tothe desired user symbol for user i, and b is a possible QAMconstellation point. The MLD operation determines the constellationpoint b that minimizes the probability of error.

The redetected user symbols {circumflex over (b)} ⁽¹⁾(m) for the firstiteration may then be fed back to the interference computation unit 2940through the buffer 2930 to re-compute the multi-user interference Î⁽²⁾(m) for a second iteration using the redetected user symbols{circumflex over (b)} ¹(m−1), {circumflex over (b)} ⁽¹⁾(m), {circumflexover (b)} ⁽¹⁾(m+1) for the symbol periods m−1, m, and m+1, respectively,from the first iteration. The computed multi-user interference Î ⁽²⁾(m)for the second iteration may then be removed from the received symbolsz(m) to redetect the user symbols for the second iteration. Thedetection system 2905 may perform any number of iterations k to refinethe redetected user symbols {circumflex over (b)} ^((k))(m). To simplycomputations, the interference computation unit 2940 may use theinitially detected user symbols for symbol periods m−1 and m+1 for alliterations, in which case only the user symbols for symbol period m areupdated.

User Symbol Detection and Interference Cancellation in the Presence ofMultiple Spreading Factors

Methods and systems for performing user symbol detection andinterference cancellation in the presence of multiple spreading factorsare provided, according to certain aspects of the present disclosure.

In one aspect, a communication system may spread user symbols usingcodes with different spreading factors. For example, a universal mobiletelecommunication system (UTMS) based communication system may supportcommunication protocols using different spreading factors. Thecommunication protocols may include high speed downlink packet access(HSDPA), which has a spreading factor of 16, and release 99 (R99), whichmay have spreading factors 2^(k) with k between 2 and 8.

Codes for the different spreading factors may be selected based on aorthogonal variable spreading factor (OVSF) tree or other means. FIG. 30shows a diagram of an exemplary OVSF tree according to an aspect of thepresent disclosure. The OVSF tree comprises multiple levels where eachlevel corresponds to a different spreading factor. FIG. 30 shows thefirst four levels of the OVSF tree corresponding to spreading factors(SF) 1, 2, 4 and 8, respectively. The tree level for each spreadingfactor comprises a set of mutually orthogonal codes. For example, thetree level for SF=4 comprises a set of four mutually orthogonal codes3020 a-3020 d. A code at each spreading factor has multiple childrencodes at higher-order spreading factors. For example, code 3010 a atSF=2 has two children codes 3020 a-3020 b at SF=4, four children codes3030 a-3030 d at SF=8 and so on. A code may be considered a father codeto its children codes. For example, code 3010 a may be considered afather code to its children codes 3020 a-3020 b and 3030 a-3030 d.

Each father code has two immediate children codes in the next treelevel. For example, code 3010 a has two immediate children codes 3020a-3020 b in the next tree level. For each father code, the firstimmediate child code is a sequence comprising the father code repeatedtwice, and the second immediate child code is a sequence comprising thefather code followed by the inverse of the father code. For a fathercode, each of its children codes may be represented by a sequencecomprising the father code repeated multiple times where each repetitionof the father code is multiplied by a coefficient of either one ornegative one. Also, for a father code, each of its children codes areorthogonal to the other codes at the same spreading factor as the fathercode and their children codes.

A method for performing symbol detection and interference cancellationin the presence of two or more different spreading factors will now bediscussed, according to one aspect of the disclosure. In one example,there are N₁ spreading codes at a spreading factor of 16 and N₂spreading codes at a spreading factor of 256. In this example, thespreading codes at spreading factor 16 may correspond to HSDPA signalsand the spreading codes at spreading factor 256 may correspond to R99signals in a UTMS-based system. The spreading factors of 16 and 256 areonly examples of possible spreading factors and other spreading factorsmay also be used.

The user symbols and gains for the spreading factor of 16 may berepresented by b₁, . . . , b_(N1) b_(N1) and g₁, . . . , g_(N1),respectively, and the user symbols and gains for the spreading factor of256 may be represented by b₁′, . . . , b_(N2)′ and g₁′, . . . , g_(N2)′,respectively. The user symbols b₁, . . . , b_(N1) for spreading factor16 may be represented in vector form as {circumflex over (b)}(m) where mis the symbol index for spreading factor 16, and the user symbols b₁′, .. . , b_(N2)′ for spreading factor 256 may be represented in vector formas {circumflex over (b)}′(m′) where m′ is the symbol index for spreadingfactor 256. In this example, one symbol period of the user symbols b₁′,. . . , b_(N2)′ at spreading factor 256 spans 16 symbol periods of theuser symbols b₁, . . . , b_(N1) at spreading factor 16.

A spreading code for a user symbol b₁′ at spreading factor 256 may berepresented as a sequence comprising 16 repetitions of a father code wat spreading factor 16. FIG. 31 is a diagram illustrating the spreadingcode for user symbol b_(i)′ at spreading factor 256 comprising 16repetitions of the father code w. Each repetition of the father code wis multiplied by a coefficient α_(i)[m] that is either one or negativeone, where m is the symbol index for spreading factor 16 and i is a codeindex, which ranges from 1 to N₂ for spreading factor 256.

In one aspect, the spreading codes w₁′ to w_(N2)′ at spreading factor256 share a common father code w at spreading factor 16, in which thefather code w is orthogonal to each of the spreading codes w₁ to w_(N1)used at spreading factor 16 so that the spreading codes at bothspreading factors are mutually orthogonal. An example of this isillustrated in FIG. 32 where N₁ of the codes available at spreadingfactor 16 are allocated for the spreading codes w₁ to w_(N1) and one ofthe codes is allocated for the father code w of spreading codes w₁′ tow_(N2)′ at spreading factor 256.

In one aspect, the user symbols {circumflex over (b)}(m) for spreadingfactor 16 may be initially detected as follows:{circumflex over (b)} (m)=slice( z (m))  (72)where {circumflex over (b)}(m) are the detected user symbols and z(m)are the received symbols for spreading factor 16. The received symbolsz(m) may be obtained by descrambling and despreading received chips withthe descrambling and despreading codes, respectively, for spreadingfactor 16. The user symbols for {circumflex over (b)}′(m′) for spreadingfactor 256 may also be initially detected as follows:{circumflex over (b)} ′(m′)=slice( z ′(m′))  (73)where {circumflex over (b)}′(m′) are the detected user symbols andz′(m′) are the received symbols for spreading factor 256. The receivedsymbols z′(m′) may be obtained by descrambling and despreading receivedchips with the descrambling and despreading codes, respectively, forspreading factor 256.

In one aspect, a combined interference estimate may be computed at thelevel of spreading factor 16 from the initially detected user symbolsfor both spreading factors as follows:

$\begin{matrix}{{{\underset{\_}{I}}_{c}(m)} = {\sum\limits_{{l = {- 1}},0,1}^{\;}{{A_{l}(m)}G{{\underset{\_}{\hat{b}}}_{c}( {m + l} )}}}} & (74)\end{matrix}$where {circumflex over (b)} _(c)(m) are combined user symbols comprisingthe detected user symbols {circumflex over (b)}(m) for spreading factor16 and a projection of the detected user symbols for spreading factor256 onto symbol period m. The combined user symbols {circumflex over(b)} _(c)(m) may be expressed as:

$\begin{matrix}{{{\underset{\_}{\hat{b}}}_{c}(m)} = \begin{bmatrix}{{\hat{b}}_{1}(m)} \\\vdots \\{{\hat{b}}_{N\; 1}(m)} \\{\sum\limits_{i = 1}^{N_{2}}{g_{i}^{\prime}{\alpha_{i}\lbrack m\rbrack}{\hat{b}}_{i}^{\prime}}}\end{bmatrix}} & (75)\end{matrix}$where the bottom term represents a projection of the detected usersymbols for spreading factor 256 onto the symbol period m. Thecontribution of each detected user symbol for spreading factor 256 tothe projection is given by g_(i)′α_(i) [m]{circumflex over (b)} _(i)′where g^(i)′ is the respective gain, α_(i)[m] is the coefficient for therespective spreading code at symbol period m, {circumflex over (b)}_(i)′is an initially detected user symbol at spreading factor 256 (e.g.,based on Eq. (73)), and i is a code index for spreading factor 256,which ranges from 1 to N₂. In this example, each initially detected usersymbol {circumflex over (b)}_(i)′ for spreading factor 256 is constantacross 16 symbol periods m for spreading factor 16. The diagonal gainmatrix G may be expressed as:

$\begin{matrix}{G = \begin{bmatrix}g_{1} & \; & \; & 0 \\\; & \ddots & \; & \; \\\; & \; & g_{N\; 1} & \; \\0 & \; & \; & 1\end{bmatrix}} & (76)\end{matrix}$where g₁ to g_(N1) are the respective gains for the user symbols atspreading factor 16, and the coefficient of one reflects that the gainsfor the user symbols at spreading factor 256 are taken into account inEq. (68). The gain g_(i)′ in Eq. (76) may be normalized as follows:

$\begin{matrix}{{{\underset{\_}{\hat{b}}}_{c}(m)} = \begin{bmatrix}{{\hat{b}}_{1}(m)} \\\vdots \\{{\hat{b}}_{N\; 1}(m)} \\{\sum\limits_{i = 1}^{N_{2}}{{\overset{\sim}{g}}_{i}^{\prime}{\alpha_{i}\lbrack m\rbrack}{\hat{b}}_{i}^{\prime}}}\end{bmatrix}} & (77)\end{matrix}$where {tilde over (g)}_(i)′ is given by:

$\begin{matrix}{{\overset{\sim}{g}}_{i}^{\prime} = {g_{i}^{\prime}/\sqrt{\sum\limits_{i = 1}^{N_{2}}( g_{i}^{\prime} )^{2}}}} & (78)\end{matrix}$In this case, the gain matrix G is given by:

$\begin{matrix}{G = \begin{bmatrix}g_{1} & \; & \; & 0 \\\; & \ddots & \; & \; \\\; & \; & g_{N\; 1} & \; \\0 & \; & \; & \sqrt{\sum\limits_{i = 1}^{N_{2}}( g_{i}^{\prime} )^{2}}\end{bmatrix}} & (79)\end{matrix}$

The matrices A⁻¹, A₀, A₁ may be computed based on Eqs. (28)-(30) inwhich the spreading matrix W may be expressed as:

$\begin{matrix}{W = \begin{bmatrix}{\underset{\_}{W}}_{1} & \ldots & {\underset{\_}{W}}_{N\; 1} & \underset{\_}{W}\end{bmatrix}} & (80)\end{matrix}$

where W ₁ to W _(N1) are the spreading codes for the user symbols atspreading factor 16 and W is the father code at spreading factor 16 ofthe spreading codes for spreading factor 256. In this example, each ofthe spreading codes W ₁ to W _(N1) and the father code W is representedby a column vector comprising 16 chips. The spreading matrix W may be aN×N matrix, where N corresponds to the spreading factor 16. In thisexample, there may be up to 15 spreading codes for the spreading factor16 (e.g., N₁=15) since one of the available spreading codes is used forthe father code of the spreading codes for spreading factor 256.

The total filter matrix C and scrambling matrix P may be derived basedon Eqs. (24) and (19) respectively, where the dimension N corresponds tothe lower spreading factor (e.g., N=16 for the above example).

In this aspect, the combined interference I _(c)(m) accounts formulti-user interference from user symbols for both spreading factors andis computed at the level of the lower spreading factor (e.g., 16), whichsimplifies the interference computations.

After the combined interference I _(c)(m) is computed, the combinedinterference may be removed from received symbols z(m) at spreadingfactor 16 where the received symbols comprise the received symbols z₁(m)to z_(N1)(m) corresponding to the user symbols at spreading factor 16and a received symbol derived by despreading the descrambled receivedchips based on father code w for the codes at spreading factor 256. Thereceived symbols z(m) may be given by:

$\begin{matrix}{{\underset{\_}{z}(m)} = \begin{bmatrix}{z_{1}(m)} \\\vdots \\{z_{N\; 1}(m)} \\{z^{\prime}(m)}\end{bmatrix}} & (81)\end{matrix}$where z₁(m) to z_(N1)(m) are the received symbols corresponding to theuser symbols at spreading factor 16, and z′(m) is a received symbolbased on the father code. The received symbols with the combinedinterference removed may be expressed as:

$\begin{matrix}{{\underset{\_}{\overset{\sim}{z}}(m)} = {{\underset{\_}{z}(m)} - {\sum\limits_{{l = {- 1}},0,1}^{\;}{{A_{l}(m)}G{{\underset{\_}{\hat{b}}}_{c}( {m + 1} )}}}}} & (82)\end{matrix}$where {tilde over (z)}(m) are the received symbols after the combinedinterference has been removed. The received symbols {tilde over (z)}(m)with the combined interference removed include {tilde over (z)} ₁(m) to{tilde over (z)} _(N1)(m), which correspond to the user symbols forspreading factor 16, and {tilde over (z)}′(m), which is based on fathercode w for spreading factor 256. The removal of the combinedinterference from the received symbols provides cancellation ofmulti-user interference from user symbols at both spreading factors.This results in more accurate redetection of user symbols at bothspreading factors, which is discussed below.

In one aspect, the user symbols for spreading factor 16 are redetectedusing the received symbols {tilde over (z)}(m) with the combinedinterference removed. Each user symbol for spreading factor 16 may beredetected using slicing as follows:{circumflex over ({circumflex over (b)} _(i)(m)=Slice{{tilde over (z)}_(i)(m)+[a ₀(m)]_(i,i) g _(i) {circumflex over (b)} _(i)(m)}  (83)where {circumflex over ({circumflex over (b)}_(i)(m) is the re-detecteduser symbol and i is a code index for spreading factor 16, which rangesfrom 1 to N₁. The term [a₀(m)]_(i,i)g_(i){circumflex over (b)}_(i)(m) isused to add back the contribution of the initially detected user symbol{circumflex over (b)}_(i)(m), which is removed by the computed combinedinterference in Eq. (82). The term [a₀(m)]_(i,i) refers to thecoefficient of the matrix A₀ in the i^(th) row and column.

In one aspect, the user symbols at spreading factor 256 are redetectedusing the received symbols {tilde over (z)}(m) with the combinedinterference removed. To redetect a user symbol at spreading factor 256,16 corresponding received symbols at spreading factor 16 are computedand then coherently combined to estimate a received symbol for the usersymbol at spreading factor 256. Each of the 16 received symbols atspreading factor 16 contributing to the received symbol at spreadingfactor 256 may be expressed as:{tilde over (z)} _(i)′(m)={tilde over (z)}′(m)+[a ₀(m)]_(N,N)α_(i) [m]g_(i) ′{circumflex over (b)} _(i)′  (84)where {tilde over (z)}_(i)′(m) is a received symbol at spreading factor16 with the combined interference removed, m is the symbol index forspreading factor 16, and i is a code index for spreading factor 256,which ranges from 1 to N₂. The term[a₀(m)]_(N,N)α_(i)[m]g_(i)′{circumflex over (b)}_(i)′ is used to addback the contribution of the initially detected user symbol {circumflexover (b)}_(i)′, which is removed by the computed combined interferencein Eq. (82). The received symbol {tilde over (z)}_(i)′(m) is computedover 16 symbol periods, multiplied by the respective coefficientsα_(i)[m], and then coherently combined. The combined received symbolsare then sliced to detect the user symbol for spreading factor 256 asfollows:

$\begin{matrix}{{\hat{\hat{b}}}_{i}^{\prime} = {{Slice}\{ {\sum\limits_{m = 1}^{16}{{\alpha_{i}\lbrack m\rbrack}{{\overset{\sim}{z}}_{i}^{\prime}(m)}}} \}}} & (85)\end{matrix}$where {circumflex over ({circumflex over (b)}_(i)′ is the redetecteduser symbol at spreading factor 256.

FIG. 33 is a diagram illustrating redetection of user symbol {circumflexover ({circumflex over (b)}_(i)′ for spreading factor 256 based on Eqs.(84) and (85). In blocks 3310-1 to 3310-16, {tilde over (z)}′(m) iscomputed for symbol periods m=1 to m=16, respectively, where {tilde over(z)}′(m) is a received symbol based on the father code with the combinedinterference removed (e.g., based on Eq. (82)).

Adders 3320-1 to 3320-16 then add the term[a₀(m)]_(N,N)α_(i)[m]g_(i)′{circumflex over (b)}_(i)′ to {tilde over(z)}′(m) for symbol periods m=1 to m=16, respectively. The initiallydetected user symbol {circumflex over (b)}_(i)′ corresponds to the usersymbol to be redetected, and is constant for symbol periods m=1 to m=16.

The output of the adders 3320-1 to 3320 result in 16 received symbols{tilde over (z)}_(i)′(m) at spreading factor 16 in blocks 3330-1 to3330-16, respectively (e.g., based on Eq. (84)). Each received symbol{tilde over (z)}_(i)′(m) contributes to a received symbol at spreadingfactor 256 corresponding to the user symbol to be redetected.

Multipliers 3340-1 to 3340-16 then multiply the 16 received symbols{tilde over (z)}_(i)′(m) with respective coefficients α_(i)[m] and adder3350 combines the received symbols. The output of the adder 3350 is thensliced by slicer 3360 to redetect the user symbol {circumflex over({circumflex over (b)}_(i)′ at spreading factor 256 (e.g., based on Eq.(85)).

The redetected user symbols for both spreading factors may be used in aniterative process to further refine the redetected user symbols. In thisaspect, the combined interference is recomputed for iteration k usingthe redetected user symbols from the previous iteration k−1, and removedfrom the received symbols z(m) according to the expression:

$\begin{matrix}{{{\underset{\_}{\overset{\sim}{z}}}^{(k)}(m)} = {{\underset{\_}{z}(m)} - {\sum\limits_{{l = {- 1}},0,1}^{\;}{{A_{l}(m)}G{{\underset{\_}{\hat{b}}}_{c}^{({k - 1})}( {m + l} )}}}}} & (86)\end{matrix}$where k is an iteration index. The user symbols for spreading factor 16may then be redetected for iteration k according to the expression:{circumflex over (b)} _(i) ^((k))(m)=Slice{{tilde over (z)} _(i)(m)+[a₀(m)]_(i,i) g _(i) {circumflex over (b)} _(i) ^((k-1))(m)}  (87)The user symbols for spreading factor 256 may also be redetected foriteration k according to the expressions:

$\begin{matrix}{{{\overset{\sim}{z}}_{i}^{\prime}(m)} = {{{\overset{\sim}{z}}^{\prime{(k)}}(m)} + {\lbrack {a_{0}(m)} \rbrack_{N,N}{\alpha_{i}\lbrack m\rbrack}g_{i}^{\prime}{\hat{b}}_{i}^{\prime{({k - 1})}}}}} & (88) \\{{\hat{b}}_{i}^{\prime{(k)}} = {{Slice}\{ {\sum\limits_{m = 1}^{16}{{\alpha_{i}\lbrack m\rbrack}{{\overset{\sim}{z}}_{i}^{\prime}(m)}}} \}}} & (89)\end{matrix}$

FIG. 34 is a schematic of a multi-user detection system 3400 capable ofdetecting symbols and performing interference cancellation for multiplespreading factors, according to certain aspects of the disclosure.

The detection system 3400 comprises a descramble unit 3405, a firstdespread unit 3410, and a first slicer unit 3450. The descramble unit3405 descrambles filtered received chips y(n) with a descrambling codeand the first despread unit 3410 despreads the descrambled chips withdespreading codes for spreading factor 16. The first despread unit 3410outputs a set of received symbols z(m) for spreading factor 16, whichmay be given by Eq. (81). The received symbols z(m) may include receivedsymbols z₁(m) to z_(N1)(m) obtained using the despreading codes forspreading factor 16. The received symbols z(m) may also include areceived symbol z′(m) obtained using the father code of the despreadingcodes for spreading factor 256, as explained above. The received symbolsz₁(m) to z_(N1)(m) are inputted to the first slicer 3450, which detectsuser symbols {circumflex over (b)}(m) for spreading factor 16 from thereceived symbols z₁(m) to z_(N1)(m) (e.g., based on Eq. (72)).

The detection system 3400 also comprises a second despread unit 3420,and a second slicer unit 3460. The second despread unit 3410 despreadsthe descrambled chips with despreading codes for spreading factor 256.The despread unit 3420 outputs a set of received symbols z′(m′) forspreading factor 256, where m′ is a symbol period corresponding to 256chips. The received symbols z′(m′) are inputted to the second slicer3460, which detects user symbols {circumflex over (b)}′(m′) forspreading factor 256 from the received symbols z′(m′) (e.g., based onEq. (73)).

The detection system 3400 further comprises an interference cancellationunit 3470, a redetection unit 3475 and a parameter computation unit3480. The interference cancellation unit 3470 receives the detected usersymbols {circumflex over (b)}(m) for spreading factor 16 from the firstslicer unit 3450 and the detected user symbols {circumflex over(b)}′(m′) for spreading factor 256 from the second slicer unit 3460. Theinterference cancellation unit 3475 uses the detected user symbols forboth spreading factors to compute a combined interference and removesthe combined interference from the received symbols z(m) at spreadingfactor 16 (e.g., based on Eq. (82)). The redetection unit 3475 thenredetects user symbols for spreading factor 16 from the received symbolswith the computed interference removed (e.g., based on Eq. (83)). Theredetection unit 3475 also redetects user symbols for spreading factor256 from the received symbols with the computed interference removed(e.g., based on Eqs. (84) and (85)).

The redetected user symbols for both spreading factors may be fed backto the interference cancellation unit 3475 through feedback path 3485.The interference cancellation unit 3475 may then re-compute the combinedinterference using the redetected user symbols, and remove therecomputed combined interference from the received symbols (e.g., basedon Eqs. (86). The redetection unit 3475 then redetects the user symbolsfor spreading factor 16 from the received symbols with the recomputedinterference removed (e.g., based on Eq. (87). The redetection unit 3475also redetects the user symbols for spreading factor 16 from thereceived symbols with the recomputed interference removed (e.g., basedon Eqs. (88) and (89)). The above iteration may be repeated any numberof times to refine the redetected user symbols. In FIG. 34, thesuperscript k for the user symbols is an iteration index, where k=0 forthe user symbols outputted from the first and second slicers 3450 and3460.

The parameter computation unit 3480 computes the matrices A⁻¹, A₀, A₁and provides the matrices to the interference cancellation unit 3470 andthe redetection unit 3475.

FIG. 35 a is a flow diagram illustrating a user-symbol detection processwith multi-user interference cancellation in the presence of multiplespreading factors, according to certain aspects of the presentdisclosure. This process may be performed at a receiver (e.g., mobilestation 106).

In operation 3510, a combined interference is computed using thedetected user symbols for first and second spreading factors (e.g.,based on Eq. (75)). The combined interference accounts for multi-userinterference from user symbols for both spreading factors. The usersymbols for the first spreading factor (e.g., 16) may be detected fromreceived symbols corresponding to the first spreading factor. Forexample, the user symbols for the first spreading factor may be detectedby slicing the received symbols corresponding to the first spreadingfactor (e.g., based on Eq. (72)). The received symbols corresponding tothe first spreading factor may be obtained by despreading descrambledchips with despreading codes for the first spreading factor. The usersymbols for the second spreading factor (e.g., 256) may be detected fromreceived symbols corresponding to the second spreading factor. Forexample, the user symbols for the second spreading factor may bedetected by slicing the received symbols corresponding to the secondspreading factor (e.g., based on Eq. (73)).

In operation 3520, the computed combined interference is removed fromthe received symbols corresponding to the first spreading factor (e.g.,based on Eq. (82)).

Finally, in operation 3530, user symbols for the first spreading factorare redetected from the received symbols with the combined interferenceremoved (e.g., based on Eq. (83)).

FIG. 35 b is a block diagram of a mobile station 106 used in a wirelesscommunication system 100, according to certain aspects of the presentdisclosure. Mobile station 106 of FIG. 35 b includes a module 3550 forcomputing a combined interference based on detected user symbols forfirst and second spreading factors. The combined interference accountsfor multi-user interference from user symbols for both spreadingfactors. The mobile station 106 further includes a module 3560 forremoving the combined interference from the received symbolscorresponding to the first spreading factor 3560 and a module 3565 forredetecting the user symbols for the first spreading factor based on thereceived symbols with the combined interference removed.

FIG. 36 is a flow diagram illustrating another user-symbol detectionprocess with multi-user interference cancellation in the presence ofmultiple spreading factors, according to certain aspects of the presentdisclosure. The process in FIG. 36 may be used to detect the usersymbols for the second spreading factor (e.g., 256).

In operation 3610, a plurality of received symbols with combinedinterference removed are obtained (e.g., based on Eq. (84)). Forexample, the plurality of received symbols with the combinedinterference removed may be obtained by repeating operations 3510-3540in FIG. 35 over multiple symbol periods for the first spreading factor(e.g., 16 symbol periods).

In operation 3620, each of the plurality of received symbols with thecombined interference removed is multiplied by a respective coefficient.

In operation 3630, the plurality of received symbols multiplied by therespective coefficients are combined.

In operation 3640, a user symbol for the second spreading factor (e.g.,256) is redetected from the combined received symbols. For example, theuser symbol may be redetected by slicing the combined received symbols(e.g., based on Eq. (85)).

The spreading factors of 16 and 256 are exemplary only, and the methodsand systems discussed above may be applied to other spreading factors.Also, the methods and systems may be applied in cases where thespreading codes for a higher spreading factor correspond to more thanone father code at a lower spreading factor.

For example, the spreading codes for the higher spreading factor (e.g.,256) may comprise two sets of spreading codes where each set ofspreading codes has a different father code at the lower spreadingfactor (e.g., 16). In this example, the combined user symbols may beexpressed as:

$\begin{matrix}{{{{\underset{\_}{\hat{b}}}_{c}(m)} = \begin{bmatrix}{{\hat{b}}_{1}(m)} \\\vdots \\{{\hat{b}}_{N\; 1}(m)} \\{\sum\limits_{i = 1}^{N^{\lbrack 1\rbrack}}{g_{i}^{\lbrack 1\rbrack}{\alpha_{i}^{\lbrack 1\rbrack}\lbrack m\rbrack}{\hat{b}}_{i}^{\lbrack 1\rbrack}}} \\{\sum\limits_{i = 1}^{N^{\lbrack 2\rbrack}}{g_{i}^{\lbrack 2\rbrack}{\alpha_{i}^{\lbrack 2\rbrack}\lbrack m\rbrack}{\hat{b}}_{i}^{\lbrack 2\rbrack}}}\end{bmatrix}}{where}{\sum\limits_{i = 1}^{N^{\lbrack 1\rbrack}}{g_{i}^{\lbrack 1\rbrack}{\alpha_{i}^{\lbrack 1\rbrack}\lbrack m\rbrack}{\hat{b}}_{i}^{\lbrack 1\rbrack}}}} & (90)\end{matrix}$is the projection of the detected user symbols corresponding to thefirst set of spreading codes to the symbol period m and

$\sum\limits_{i = 1}^{N^{\lbrack 2\rbrack}}{g_{i}^{\lbrack 2\rbrack}{\alpha_{i}^{\lbrack 2\rbrack}\lbrack m\rbrack}{\hat{b}}_{i}^{\lbrack 2\rbrack}}$is the projection of the detected user symbols corresponding to thesecond set of spreading codes to the symbol period m. The gain matrix Gin Eq. (76) may be expressed as:

$\begin{matrix}{G = \begin{bmatrix}g_{1} & \; & \; & \; & \; \\\; & \ddots & \; & \; & \; \\\; & \; & g_{N\; 1} & \; & \; \\\; & \; & \; & 1 & \; \\\; & \; & \; & \; & 1\end{bmatrix}} & (91)\end{matrix}$The spreading matrix W in Eq. (80) may be given by:

$\begin{matrix}{W = \begin{bmatrix}{\underset{\_}{W}}_{1} & \ldots & {\underset{\_}{W}}_{N\; 1} & {\underset{\_}{W}}^{\lbrack 1\rbrack} & \underset{\_}{W^{\lbrack 2\rbrack}}\end{bmatrix}} & (92)\end{matrix}$where W ₁ to W _(N1) are the spreading codes for the user symbols at thelower spreading factor, W ^([1]) is the father code for the first set ofspreading codes at the higher spreading factor and W ^([2]) is thefather code for the second set of spreading codes at the higherspreading factor. The received symbols may be given by:

$\begin{matrix}{{\underset{\_}{z}(m)} = \begin{bmatrix}{z_{1}(m)} \\\vdots \\{z_{N\; 1}(m)} \\{z^{\lbrack 1\rbrack}(m)} \\{z^{\lbrack 2\rbrack}(m)}\end{bmatrix}} & (93)\end{matrix}$where is z^([1]) is a received symbol obtained from a despreading codecorresponding to father code of the first set of spreading codes at thehigher spreading factor and z^([2]) is a received symbol obtained from adespreading code corresponding to father code of the second set ofspreading codes at the higher spreading factor. In this example, thecombined interference cancellation and user symbol detection for bothspreading factors may be performed, for example, based on Eqs. (86) to(89).

Those of ordinary skill in the art would understand that the informationand signal may be represented using any of a variety of differenttechnologies and techniques. For example, data, instructions, commandsinformation signals, bits, symbols, and chips that may be referencedthroughout the above description may be represented by voltages,currents, electromagnetic waves, magnetic fields or particles, opticalfields or particles, or any combination thereof.

Those of ordinary skill would further appreciate that the variousillustrative logical modules, circuits and algorithms described inconnection with the embodiments disclosed herein may be implemented aselectronic hardware, computer software or combinations of both. Toclearly illustrate this interchangeability of hardware and software,various illustrative components, blocks, modules, circuits and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. Skilled artisans may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present disclosure.

The various illustrative logical blocks, modules, and circuits describedin connection with the embodiments disclosed herein may be implementedor performed with a general purpose processor, a digital signalprocessor (DSP), an application specific integrated circuit (ASIC), afield programmable gate array (FPGA) or other programmable logic device,discrete gate or transistor logic, discrete hardware components, or anycombination thereof designed to perform the functions described herein.A general purpose processor may be a microprocessor, but in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A process may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

In one or more exemplary embodiments, the functions described may beimplemented in hardware, software, firmware, or any combination thereofIf implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on amachine-readable medium. Machine-readable media includes both computerstorage media and communication media including any medium thatfacilitates transfer of a computer program from one place to another. Astorage media may be any available media that can be accessed by acomputer. By way of example, and not limitation, such machine-readablemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage or other magnetic storage devices, or anyother medium that can be used to carry or store desired program code inthe form of instructions or data structures and that can be accessed bya computer. Also, any connection is properly termed a machine-readablemedium. For example, if the software is transmitted from a website,server, or other remote source using a coaxial cable, fiber optic cable,twisted pair, digital subscriber line (DSL), or wireless technologiessuch as infrared, radio, and microwave, then the coaxial cable, fiberoptic cable, twisted pair, DSL, or wireless technologies such asinfrared, radio, and microwave are included in the definition of medium.Disk and disc, as used herein, includes compact disc (CD), laser disc,optical disc, digital versatile disc (DVD), floppy disk and blu-ray discwhere disks usually reproduce data magnetically, while discs reproducedata optically with lasers. Combinations of the above should also beincluded within the scope of machine-readable media.

The previous description of the disclosed aspects is provided to enableany person skilled in the art to make or use the present disclosure.Various modifications to these aspects will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other aspects without departing from the disclosure. Thus,the present disclosure is not intended to be limited to the aspectsshown herein but is to be accorded the widest scope consistent with theprinciples and novel features disclosed herein.

What is claimed is:
 1. A method of multi-user detection in a wirelesscommunication system, comprising: processing received chips intoreceived symbols for a plurality of users; computing a multi-user matrixusing a Hadamard matrix by transforming a Walsh matrix not in Hadamardform into the Hadamard matrix by reordering rows or columns of the Walshmatrix and multiplying the Hadamard matrix with a scrambling matrix, adescrambling matrix, a total filter matrix, or a combination thereofusing Fast Hadamard Transform (FHT) operations; and detecting usersymbols for the plurality of users using the received symbols and thecomputed multi-user matrix; wherein the Hadamard matrix comprises asquare matrix having entries either +1 or −1 with mutually orthogonalrows.
 2. The method of claim 1, wherein, for each user, the multi-usermatrix relates one or more of the user symbols for the other users tothe received symbol for the user.
 3. The method of claim 1, wherein whenthe Walsh matrix is in Hadamard form, the multi-user matrix is computedby directly multiplying the Walsh matrix with the scrambling matrix, thedescrambling matrix, the total filter matrix, or the combination thereofusing FHT.
 4. The method of claim 3, wherein the Hadamard matrix ismultiplied with a scrambling matrix or a descrambling matrix.
 5. Themethod of claim 3, wherein the Hadamard matrix is multiplied with atotal filter matrix representing a convolution of a channel estimationwith a filter.
 6. The method of claim 1, wherein the Hadamard matrix ismultiplied with a scrambling matrix or a descrambling matrix.
 7. Themethod of claim 1, wherein the Hadamard matrix is multiplied with atotal filter matrix representing a convolution of a channel estimationwith a filter.
 8. The method of claim 1, wherein the Hadamard matrixcomprises a plurality of despreading codes, and processing the receivedchips into the received symbols comprises despreading the received chipsusing the plurality of despreading codes.
 9. A non-transitory multi-userdetection system, comprising a processing unit configured to processreceived chips into received symbols for a plurality of users; acomputation unit configured to compute a multi-user matrix using aHadamard matrix by transforming a Walsh matrix not in Hadamard form intothe Hadamard matrix by reordering rows or columns of the Walsh matrixand multiplying the Hadamard matrix with a scrambling matrix, adescrambling matrix, a total filter matrix, or a combination thereofusing Fast Hadamard Transform (FHT) operations; and a detection unitconfigured to detect the user symbols for the plurality of users usingthe received symbols and the computed multi-user matrix; wherein theHadamard matrix comprises a square matrix having entries either +1 or −1with mutually orthogonal rows.
 10. The system of claim 9, wherein, foreach user, the multi-user matrix relates one or more of the user symbolsfor the other users to the received symbol for the user.
 11. The systemof claim 9, wherein when the Walsh matrix is in Hadamard form, thecomputation unit is configured to-compute the multi-user matrix bydirectly multiplying the Walsh matrix with the scrambling matrix, thedescrambling matrix, the total filter matrix, or the combination thereofusing FHT operations.
 12. The system of claim 11, wherein the Hadamardmatrix is multiplied with a scrambling matrix or a descrambling matrix.13. The system of claim 11, wherein the Hadamard matrix is multipliedwith a total filter matrix representing a convolution of a channelestimation with a filter.
 14. The system of claim 9, wherein theHadamard matrix is multiplied with a scrambling matrix or a descramblingmatrix.
 15. The system of claim 9, wherein the Hadamard matrix ismultiplied with a total filter matrix representing a convolution of achannel estimation with a filter.
 16. The system of claim 9, wherein theHadamard matrix comprises a plurality of despreading codes, and theprocessing unit is configured to despread the received chips using theplurality of despreading codes.
 17. An apparatus, comprising: means forprocessing received chips into received symbols for a plurality ofusers; means for computing a multi-user matrix using a Hadamard matrixby transforming a Walsh matrix not in Hadamard form into the Hadamardmatrix by reordering rows or columns of the Walsh matrix and multiplyingthe Hadamard matrix with a scrambling matrix, a descrambling matrix, atotal filter matrix, or a combination thereof using Fast HadamardTransform (FHT) operations; and means for detecting the user symbols forthe plurality of users using the received symbols and the computedmulti-user matrix; wherein the Hadamard matrix comprises a square matrixhaving entries either +1 or −1 with mutually orthogonal rows.
 18. Theapparatus of claim 17, wherein, for each user, the multi-user matrixrelates one or more of the user symbols for the other users to thereceived symbol for the user.
 19. The apparatus of claim 17, whereinwhen the Walsh matrix is in Hadamard form, the means for computing themulti-user matrix directly multiplies the Walsh matrix with thescrambling matrix, the descrambling matrix, the total filter matrix, orthe combination thereof using FHT operations.
 20. The apparatus of claim19, wherein the Hadamard matrix is multiplied with a scrambling matrixor a descrambling matrix.
 21. The apparatus of claim 19, wherein theHadamard matrix is multiplied with a total filter matrix representing aconvolution of a channel estimation with a filter.
 22. The apparatus ofclaim 17, wherein the Hadamard matrix is multiplied with a scramblingmatrix or a descrambling matrix.
 23. The apparatus of claim 17, whereinthe Hadamard matrix is multiplied with a total filter matrixrepresenting a convolution of a channel estimation with a filter. 24.The apparatus of claim 17, wherein the Hadamard matrix comprises aplurality of despreading codes, and the means for processing thereceived chips into the received symbols comprises means for despreadingthe received chips using the plurality of despreading codes.
 25. Anon-transitory machine-readable medium having instructions storedthereon, the instructions being executable by one or more processors andthe instructions comprising code for: processing received chips intoreceived symbols for a plurality of users; computing a multi-user matrixusing a Hadamard matrix by transforming a Walsh matrix not in Hadamardform into the Hadamard matrix by reordering rows or columns of the Walshmatrix and multiplying the Hadamard matrix with a scrambling matrix, adescrambling matrix, a total filter matrix, or a combination thereofusing Fast Hadamard Transform (FHT) operations; and detecting the usersymbols for the plurality of users using the received symbols and thecomputed multi-user matrix; wherein the Hadamard matrix comprises asquare matrix having entries either +1 or −1 with mutually orthogonalrows.
 26. The machine-readable medium of claim 25, wherein, for eachuser, the multi-user matrix relates one or more of the user symbols forthe other users to the received symbol for the user.
 27. Themachine-readable medium of claim 25, wherein when the Walsh matrix is inHadamard form, the code for computing the multi-user matrix directlymultiplies the Walsh matrix with the scrambling matrix, the descramblingmatrix, the total filter matrix, or the combination thereof using FHToperations.
 28. The machine-readable medium of claim 27, wherein theHadamard matrix is multiplied with a scrambling matrix or a descramblingmatrix.
 29. The machine-readable medium of claim 27, wherein theHadamard matrix is multiplied with a total filter matrix representing aconvolution of a channel estimation with a filter.
 30. Themachine-readable medium of claim 25, wherein the Hadamard matrix ismultiplied with a scrambling matrix or a descrambling matrix.
 31. Themachine-readable medium of claim 25, wherein the Hadamard matrix ismultiplied with a total filter matrix representing a convolution of achannel estimation with a filter.
 32. The machine-readable medium ofclaim 25, wherein the Hadamard matrix comprises a plurality ofdespreading codes, and the code for processing the received chips intothe received symbols comprises code for despreading the received chipsusing the plurality of despreading codes.
 33. An apparatus, comprising:at least one processor configured to process received chips intoreceived symbols for a plurality of users, to compute a multi-usermatrix using a Hadamard matrix by transforming a Walsh matrix not inHadamard form into the Hadamard matrix by reordering rows or columns ofthe Walsh matrix and multiplying the Hadamard matrix with a scramblingmatrix, a descrambling matrix, a total filter matrix, or a combinationthereof using Fast Hadamard Transform (FHT) operations, and to detectthe user symbols for the plurality of users using the received symbolsand the computed multi-user matrix; wherein the Hadamard matrixcomprises a square matrix having entries either +1 or −1 with mutuallyorthogonal rows.
 34. The apparatus of claim 33, wherein, for each user,the multi-user matrix relates one or more of the user symbols for theother users to the received symbol for the user.
 35. The apparatus ofclaim 33, wherein when the Walsh matrix is in Hadamard form, the codefor computing the multi-user matrix, the at least one processor isconfigured to compute the multi-user matrix by directly multiplying theWalsh matrix with the scrambling matrix, the descrambling matrix, thetotal filter matrix, or the combination thereof using FHT operations.36. The apparatus of claim 35, wherein the Hadamard matrix is multipliedwith a scrambling matrix or a descrambling matrix.
 37. The apparatus ofclaim 35, wherein the Hadamard matrix is multiplied with a total filtermatrix representing a convolution of a channel estimation with a filter.38. The apparatus of claim 35, wherein the Hadamard matrix is multipliedwith a scrambling matrix or a descrambling matrix.
 39. The apparatus ofclaim 35, wherein the Hadamard matrix is multiplied with a total filtermatrix representing a convolution of a channel estimation with a filter.40. The apparatus of claim 35, wherein the Hadamard matrix comprises aplurality of despreading codes, and the at least one processor isconfigured to process the received chips into the received symbols bydespreading the received chips using the plurality of despreading codes.